Accueil › Forums › Programmation WIMS › Documents WIMS › Affichage conditionnelle dans une figure jsxgraph
- Ce sujet contient 2 réponses, 2 participants et a été mis à jour pour la dernière fois par declieu69, le il y a 9 années et 2 mois.
-
AuteurMessages
-
-
29 octobre 2015 à 19:12 #3152declieu69Participant::
Bonjour.
J’essaie de reprendre un document que j’avais fait sur les équations réduites de droites (Niv Seconde) dans lequel j’avais inséré certaines figures geogebra. J’essaie de les remplacer par des figures JSXgraph. Dans ces figures, l’affichage des textes est conditionné aux valeurs des paramètres (coeff-directeur et ordonnées à l’origine). Sous géogebra, l’interface graphique permet d’obtenir un résultat très satisfaisant. Sous Jsxgraph, ça bloque : le code que j’ai tenté est le suivant
\def{text a=slib(geo2D/jsxgraph jxgbox,500 x 500, var brd = JXG.JSXGraph.initBoard('jxgbox', {axis:true,boundingbox: [-8, 8, 8, -8], grid:true}); var axey=brd.create('line',[0,1,0],{visible:false}); var D=brd.create('line',[-1,1,0],{visible:false}); var A=brd.create('glider',[0,1,axey], {name : 'A(0,p)',snapToGrid:true,label:{offset: [-10, 0],anchorX:'right',Color:'red'}}); var B=brd.create('glider',[1,2,D], {snapToGrid:true,Color:'black',name:'B(1,\(y_B)=<FONT COLOR="red" >p</FONT>+<FONT COLOR="green" >m</FONT>)'}); var C=brd.create('point',[function(){return B.X();},function(){return A.Y();}],{visible:false}); var u=brd.create('line',[A,C],{lastArrow:true,straightFirst:false,straightlast:false,name:'+1',strokeColor:'orange'}); var v=brd.create('line',[C,B],{lastArrow:true,straightFirst:false,straightlast:false,name:'+1',strokeColor:'green'}); var d=brd.create('line',[A,B]); var m=function(){return (B.Y()-A.Y());}; var ya=function(){return A.Y();}; var t1=brd.create('text',[-7,7.2,function(){return 'L\'ordonnée à l\'origine \(p) vaut '+ ya() +' (ordonnée de A)';}],{color:'red'}); var t2=brd.create('text',[-7,6.2,function(){return 'Le coefficient directeur \(m) vaut '+m();}],{color:'green'}); if( ya() < 0) {var t3=brd.create('text',[-7,5.2,function(){return 'L\'équation réduite de la droite est \(y=) '+m()+'\(x-)'+(-ya());}],{color:'green'});} else {var t3=brd.create('text',[-7,4.2,function(){return 'L\'équation réduite de la droite est \(y=) '+(m())+'\(x+)'+ya();}],{color:'green'});} var text=brd.create('text',[-7,1,ya]); )}
Le test « if » est toujours faux et c’est toujours la parti « else » qui est affichée. Si je remplace dans le test « ya() » par 1 ou -1, j’ai bien les deux affichages différents qui apparaissent. La dernière ligne du code est écrite pour voir si la fonction ya me donne bien la bonne valeur, ce qui est le cas.
Si quelqu’un peut me débloquer, merci d’avance.
Thomas Charon
Lycée Lumière à Lyon -
30 octobre 2015 à 15:06 #3153JulienModérateur::
Hello Thomas,
Je pense que les questions spécifiques à jsxgraph devraient plutôt être posées sur le google group de jsxgraph en précisant la version utilisée 0.96. En plus les dev sont plus compétents.
https://groups.google.com/forum/#!forum/jsxgraph
Sinon ton code fonctionne mais l’évaluation du if s’effectue au chargement de la page dans le navigateur donc il faut créer un événement :
var sign="+"; A.on('drag', function(){if(A.Y()<0){sign="";}else{sign="+";};}); var t3=brd.create('text',[-7,5.2,function(){return 'L\'équation réduite de la droite est \(y=) '+m()+'\(x)'+sign+ya();}],{color:'green'});
Voili voilou
-
31 octobre 2015 à 22:51 #3158
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.