Dessin avec animation

Vous lisez 2 fils de discussion
  • Auteur
    Messages
    • #870
      Alhena
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      Je débute dans la programmtion sous WIMS, et j'essaie actuellement d'insérer dans un document un dessin avec animation aléatoire. Je rencontre deux écueils:

      Le premier, ce n'est qu'un détail, mais je n'arrive pas à mettre des légendes horizontales. Quand j'utilise la commande textup, toutes mes notations sont verticales. J'ai esssayé avec rotate, mais apparemment ça ne s'applique pas au texte, seulement aux objets dessinés.

      Le deuxième, c'est que je n'ai pas réussi à le rendre aléatoire de manière « propre ». En fait, je voudrais avoir un dessin qui représente une courbe + une tangente en un point donné + une animation qui montre la tangente en un point qui se rapproche du point fixé (j'essaie de reproduire une animation du document « dérivée » de B. Perrin-riou). Ca, j'ai réussi, mais quand j'utilise une fonction aléatoire, définie à l'aide de def{function f=random(liste de fonctions)}, ça ne me trace pas la tangente qui bouge. Je me suis dit que c'était parce que dans l'équation de la tangente, il fallait évaluer ma fonction aléatoire et sa dérivée en le paramètre s, et qu'il n'y arrivait pas alors j'ai essayé de « forcer » les évaluations avec def{real a=evalue(f,x=s)}, mais ça ne marche pas.

      Finalement, ce que j'ai fait c'est de me donner un entier aléatoire, et selon sa valeur, d'afficher un des dessins animés que j'ai créés, avec des if. Mais ça ne me paraît pas très propre, et je voulais savoir s'il n'y avait pas une meilleure manière de faire.

      Voilà, désolée si la question est évidente, mais je n'ai pas réussi à trouver de solution dans l'aide de WIMS, ou sur le net, donc si quelqu'un a des idées…

      Merci d'avance!

    • #871
      bernadette
      Maître des clés
      Up
      0
      Down
      ::

      Alhena a écrit :

      Le premier, ce n'est qu'un détail, mais je n'arrive pas à mettre des légendes horizontales. Quand j'utilise la commande textup, toutes mes notations sont verticales. J'ai esssayé avec rotate, mais apparemment ça ne s'applique pas au texte, seulement aux objets dessinés.

      Le deuxième, c'est que je n'ai pas réussi à le rendre aléatoire de manière « propre ». En fait, je voudrais avoir un dessin qui représente une courbe + une tangente en un point donné + une animation qui montre la tangente en un point qui se rapproche du point fixé (j'essaie de reproduire une animation du document « dérivée » de B. Perrin-riou). Ca, j'ai réussi, mais quand j'utilise une fonction aléatoire, définie à l'aide de def{function f=random(liste de fonctions)}, ça ne me trace pas la tangente qui bouge. Je me suis dit que c'était parce que dans l'équation de la tangente, il fallait évaluer ma fonction aléatoire et sa dérivée en le paramètre s, et qu'il n'y arrivait pas alors j'ai essayé de « forcer » les évaluations avec def{real a=evalue(f,x=s)}, mais ça ne marche pas.

      Finalement, ce que j'ai fait c'est de me donner un entier aléatoire, et selon sa valeur, d'afficher un des dessins animés que j'ai créés, avec des if. Mais ça ne me paraît pas très propre, et je voulais savoir s'il n'y avait pas une meilleure manière de faire.

      Voilà, désolée si la question est évidente, mais je n'ai pas réussi à trouver de solution dans l'aide de WIMS, ou sur le net, donc si quelqu'un a des idées…

      Merci d'avance!


      Pour la première question, j'ai peur que cela ne soit pas possible actuellement. Le texte est en effet toujours horizontal. Je vois peut-être une solution mais elle serait compliquée.

       

      Pour la deuxième question, c'est def{real a=evalue(f,x=s)} qui ne va pas. Le résultat doit être une fonction de s. Donc essaye avec def{text a=evalue(f,x=s)} ou def{function a=evalue(f,x=s)}.

       

      Bernadette

       

      Voilà le source du doc dérivée

       

      def{text liste= sin(x), cos(x),  1/(1+x^2),  (1+x^2)^(-1/2)}
      def{function  f= randitem(liste)}
      def{real a= random(0,1,0.5,1,2 )}
      def{integer c=randint(1..2)}
      def{real  b= a + c}
      def{function h= c*(1-s)}
      def{text P=a, evalue(f,x=a)}
      def{real fa=evalue(f,x=a)}
      def{text Pt=a,fa}
      def{text P0=a, 0}
      def{text Q0=0, evalue(f, x=a)}
      def{function g= diff(f,x)}
      def{real der= evalue(g,x=a)}
      def{real deriv= floor(10^3*evalue(g,x=a))/10^3}
      def{text legende= 0, -1}
      def{function tangente= der*(x-a)+item(2,P)}
      def{function tangente= der*(x-a)+item(2,P)}
      def{text P1= a+(h),0}
      def{text Q=a+(h), evalue(f, x=a+(h))}
      def{text Q1=0, evalue(f, x=a+(h))}
      def{real mx= min(a-1,-1)}
      def{real Mx= a+c+1}
      def{real my= -1}
      def{real My =2}
      def{function pente=(item(2,Q)-item(2,P))*(x-(a))/(h)+item(2,P)}
      def{real larg= Mx-mx}
      def{real haut= My-my}
      def{integer prop1= 100}
      def{integer prop2= 100*haut/larg}

      draw{300,300}{
      animate 24, 0.5, 5
      xrange mx,Mx
      yrange my-1,My
      arrow 0,0, 0,My,10,black
      arrow 0,0, Mx,0 ,10,black
      vline 0,0, black
      hline 0,0, black
      linewidth 3
      line P,Q, red
      linewidth 3
      plot yellow, tangente
      plot red, pente
      linewidth 2
      plot  black, f
      linewidth 1
      dline P, P0, green
      dline P, Q0, green
      dline Q, P1, red
      dline Q, Q1 , red
      text black, legende, normal,f(x)=f, a=a, h=h
      text red, Q, normal,(a+h,f(a+h))
      }

    • #872
      Alhena
      Participant
      Up
      0
      Down
      ::

      Super, ça marche!

      Effectivement, je n'avais pas pensé qu'il fallait une fonction de s.

      Et merci pour le source, ça m'a permis de résoudre mon premier problème: mon texte s'affichait toujours vertical (écriture de bas vers le haut) au lieu d'être horizontal (de gauche vers droite) parce que j'utilisais la commande « textup » et non « text ». Donc merci!

       

      Bonne après-midi!

Vous lisez 2 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.