javascript
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

javascript



  1. #1
    pseudomehdi

    javascript


    ------

    salut à tous,
    alors une petite intro lol j'était entrain de ranger et je tombe sur un vieux livre qui soit disant devrait t'apprendre à creer ton premier site web un livre pour débutant, un livre que j'ai acheté il y'a un an et que j'ai pu en dépasser les 33 premières pages car je me suis bloqué au premier algorythme en javascript, malgré l'avoir lu dans tous les senses et mes connaissances en bases de programmation j'ai pas compis grand chose, zéro pédagogie l'auteur n'explique rien mis à part quelques phrases qui n'expliquent pas grand chose alors avant de m'en débarasser j'ai préféré me tourner vers vous .
    à quoi correspondent les variables MAX_SPIR ,MIN_SPIR quel est leurs unité, est ce que ce sont les coordonées d'un point , et la variable k pouquoi a-t-elle été calculé ainsi, l'auteur dit que ces variables correspondent à la taille de la spirale et que k correspond à la taille d'une spire mais ça ne m'aide pas.
    quelqu'un peut il m'aider et merci d'avance

    -----
    Images attachées Images attachées

  2. #2
    pseudomehdi

    Re : javascript

    voici le code, comme ça c'est plus lisible.

    Code:
    var ctx;
    
    //pour centrer la spirale
    
    var decalX = 300;
    var decalY = 300;
    
    //pour la forme de la spirale 
    
    var MIN_SPIR = 100;
    var MAX_SPIR = 300;
    var nbCercles = MIN_SPIR;
    var angleDepart = 0;
    var incrententAngle =Math.PI/60;
    
    //start (body.onload)
    
    function dessine()
    {
    var canvas = document.getElementById("spire_id");
    ctx = canvas.getContext("2d");
    dessineSpirale();
    }
    function dessineSpirale()
    {
    
    // on centre 
    
    ctx. = canvas.translate(decalX , decalY);
    
    // on ecrit à partir du centre
    
    ctx.moveTo(0,0);
    
    //le pas qui fait grossir le cercle
    
    var incrementTaille = 0.9;
    
    //la taille de depart 
    
    var taille = 0;
    
    //l'angle qui va evuluer pour tourner en rond
    
    var theta = angleDepart;
    
    // le nombre de tours
    
    var maxLoop = nbCercles* Math.PI;
    
    //la taille du cercle
    
    var k = nbCercles / MAX_SPIR;
    
    //la spirale
    
    whie (theta<maxLoop)
    {
    ctx.lineTo(k*taille*Math.cos(theta), k*taille*Math.sin(theta));
    theta += incrementAngle;
    taille+= incrementTaille;
    }
    ctx.stocke();
    }
    Dernière modification par Antoane ; 15/08/2019 à 23h09. Motif: remplacement des balises quote par code

  3. #3
    vande545

    Re : javascript

    Bonjour
    En complément de pseudomehdi, l'unité est le pixel.
    L'une des premières règles en programmation consiste à utiliser des noms expressifs pour les variables ; règle que l'auteur du livre semble ignorer superbement ce qui est comble quand on prétend transmettre un savoir !
    Cette règle n'a rien d'obligatoire. J'ai vu des programmes où les variables s'appelaient toto1, toto2, toto3.... et ça fonctionnait parfaitement.
    Seulement quand on doit relire le code pour le déboguer ou le modifier, c'est illisible, y compris pour l'auteur si il n'a pas une excellente mémoire !

  4. #4
    Ikhar84
    Animateur Informatique

    Re : javascript

    Il faut avoir un minimum de bagage pour lire et comprendre un code.

    Là, à aucun moment on ne manipule directement un pixel.

    On se place on centre du canevas et on dessine des spirales, comprenant entre MIN_SPIR et MAX_SPIR, avec un pas de incrementTaille et un angle theta.

    Le code est relativement clair, mais le propos n'est même pas là, quand on présente un code, certains elements ne seront apréhendés que plus loin dans l'ouvrage, ils resteront donc obscure jusque là.

    Le contenu de la fonction dessineSpirale() est compliqué à cette étape du livre, nous allons la détailler un peu(...)
    Ce n'est pas dans un livre que l'on va apprendre à coder, c'est en pratiquant, avec le temps, et avec l'aide de personnes capables de guider. Le livre servira de réference et d'approfondissement.

    Imagines avec un code bien réel, en C ou Assembleur, tu vas accuser l'auteur de tes carences ? Ou travailler sérieusement pour saisir les "astuces" qu'il te présente ?
    J'ai glissé Chef !

  5. A voir en vidéo sur Futura
  6. #5
    polo974

    Re : javascript

    j'ai regardé le code, il est moyennement propre, par exemple si on change angleDepart, le nombre de DEMI-tours ne sera pas le même...

    j'ai mis DEMI en majuscule, car le gars semble avoir oublié qu'un tour, c'est 2 * pi ...

    et ainsi de suite ...

    bref, code pas propre et pas pédagogique pour un sous ...
    Jusqu'ici tout va bien...

  7. #6
    uneautreterre

    Re : javascript

    Salut ! Je trouve les noms de variables assez « expressifs »
    On peut faire mieux, mais c'est plus long !
    Par contre, le code date un peu. D'une manière générale, depuis ES 6, let est préférable à var.
    Dernière modification par uneautreterre ; 15/08/2019 à 19h20.

  8. #7
    polo974

    Re : javascript

    on peut surtout faire plus juste:
    • un tour ne fait pas pi radians, mais 2 pi.
    • les conditions initiales changent de façon étrange le résultat (mauvais nommage entre nbCercles et angleDepart).
    • ...
    Jusqu'ici tout va bien...

Discussions similaires

  1. Javascript : Intégrer une variable javascript dans un champ de formulaire html
    Par invitea1400dd5 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 03/08/2014, 12h15
  2. javascript
    Par invitecc2e07df dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 18/03/2014, 16h21
  3. javascript
    Par LTHOMAS dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 26/05/2006, 03h34
  4. JavaScript : 1 + 2 = 12
    Par invite8074ea1e dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 01/08/2005, 16h57
  5. javascript
    Par invite92cc2275 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 31/01/2004, 12h01