Tschirnhausen Cubic Catacaustic: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 29: Line 29:
     [
     [
       function(){  
       function(){  
             var a = dir.stdform[1], b = dir.stdform[2],
             //var a = dir.stdform[1], b = dir.stdform[2],
            var a = reflectionpoint.X()-radpoint.X(),
                b = reflectionpoint.Y()-radpoint.Y(),
                 t = reflectionpoint.position,
                 t = reflectionpoint.position,
                 u = JXG.Math.Numerics.D(cubic.X)(t),  
                 u = JXG.Math.Numerics.D(cubic.X)(t),  
Line 44: Line 46:
       {strokeWidth:1, straightFirst:false});
       {strokeWidth:1, straightFirst:false});


/*
      [
        function(){
            var a = dir.stdform[1], b = dir.stdform[2],
                t = reflectionpoint.position,
                u = JXG.Math.Numerics.D(cubic.X)(t),
                v = JXG.Math.Numerics.D(cubic.Y)(t),
                dirx = a*v*v-2*b*u*v-a*u*u,
                diry = b*u*u-2*a*u*v-b*v*v;
            return -(reflectionpoint.X()*dirx+reflectionpoint.Y()*diry)/reflectionpoint.Z();
        },
        function(){
            var a = dir.stdform[1], b = dir.stdform[2],
                t = reflectionpoint.position,
                u = JXG.Math.Numerics.D(cubic.X)(t),
                v = JXG.Math.Numerics.D(cubic.Y)(t);
            return a*v*v-2*b*u*v-a*u*u ;
        },
        function(){
            var a = dir.stdform[1], b = dir.stdform[2],
                t = reflectionpoint.position,
                u = JXG.Math.Numerics.D(cubic.X)(t),
                v = JXG.Math.Numerics.D(cubic.Y)(t);
            return b*u*u-2*a*u*v-b*v*v;
        }
      ],
*/
var cataustic = brd.create('curve',
var cataustic = brd.create('curve',
                 [function(t){ return a.Value()*6*(t*t-1);},
                 [function(t){ return a.Value()*6*(t*t-1);},

Revision as of 14:10, 13 January 2011

The Tschirnhausen cubic (black curve) is defined parametrically as

[math]\displaystyle{ x = a3(t^2-3) }[/math]
[math]\displaystyle{ y = at(t^2-3) }[/math]

Its catcaustic (red curve) with radiant point [math]\displaystyle{ (-8a,p) }[/math] is the semicubical parabola with parametric equations

[math]\displaystyle{ x = a6(t^2-1) }[/math]
[math]\displaystyle{ y = a4t^3 }[/math]

References

The underlying JavaScript code

var brd = JXG.JSXGraph.initBoard('jxgbox',{boundingbox:[-10,10,10,-10], keepaspectratio:true, axis:true});
brd.suspendUpdate();
var a = brd.create('slider',[[-5,6],[5,6],[-5,1,5]], {name:'a'});

var cubic = brd.create('curve',
             [function(t){ return a.Value()*3*(t*t-3);},
              function(t){ return a.Value()*t*(t*t-3);},
              -5, 5
             ],
             {strokeWidth:1, strokeColor:'black'});

var radpoint = brd.create('point',[function(){ return -a.Value()*8;},0],{name:'radiant point'});

var cataustic = brd.create('curve',
                 [function(t){ return a.Value()*6*(t*t-1);},
                  function(t){ return a.Value()*4*t*t*t;},
                 -4, 4
                 ],
                 {strokeWidth:1, strokeColor:'red'});
brd.unsuspendUpdate();