Spirograph: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 2: Line 2:
var brd = JXG.JSXGraph.initBoard('jxgbox',{boundingbox:[-5,5,5,-5], kkeepaspectratio:true});
var brd = JXG.JSXGraph.initBoard('jxgbox',{boundingbox:[-5,5,5,-5], kkeepaspectratio:true});
var R = 2.0;
var R = 2.0;
var r = brd.create('slider',[[-3,4],[3,4],[-5,1,5]],{name:'r',snapWidth:0.2});
var r = brd.create('slider',[[-3,4],[3,4],[-5,1,5]],{name:'r'});
var a = brd.create('slider',[[-3,3],[3,3],[-5,1,5]],{name:'a',snapWidth:0.2});
var a = brd.create('slider',[[-3,3],[3,3],[-5,1,5]],{name:'a'});


var c = brd.create('curve',[
var c = brd.create('curve',[
     function(t){  
     function(t){  
         var r1 = r.Value();  
         var r1 = Math.round(100.0*r.Value())/100.0;  
         return (R-r1)*Math.cos(r1/R*t)+a.Value()*Math.cos((1-r1/R)*t);  
         return (R-r1)*Math.cos(r1/R*t)+a1*Math.cos((1-r1/R)*t);  
     },
     },
     function(t){  
     function(t){  
         var r1 = r.Value();  
         var r1 = Math.round(100.0*r.Value())/100.0;
         return (R-r1)*Math.sin(r1/R*t)+a.Value()*Math.sin((1-r1/R)*t);  
        var a1 = Math.round(100.0*a.Value())/100.0;  
         return (R-r1)*Math.sin(r1/R*t)+a1*Math.sin((1-r1/R)*t);  
     },  
     },  
     -40*Math.PI,40*Math.PI
     -40*Math.PI,40*Math.PI

Revision as of 15:10, 19 July 2010

The underlying JavaScript code