Conic sections in polar form: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 8: Line 8:
</html>
</html>
<jsxgraph board="brd" width="600" height="500">
<jsxgraph board="brd" width="600" height="500">
var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:true,originX:300,originY:250,unitX:25,unitY:25});
var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:true,boundingbox: [-12, 10, 12, -10]});
var p = brd.createElement('slider',[[2,8],[6,8],[0,3,6]]); brd.createElement('text',[1,8,'p:']);
var p = brd.create('slider',[[2,8],[6,8],[0,3,6]]); brd.createElement('text',[1,8,'p:']);
var eps = brd.createElement('slider',[[2,7],[6,7],[-6,0.5,6]]); brd.createElement('text',[1,7,'&epsilon;:']);
var eps = brd.create('slider',[[2,7],[6,7],[-6,0.5,6]]); brd.createElement('text',[1,7,'&epsilon;:']);
var len = brd.createElement('slider',[[2,6],[6,6],[0,2,6]]); brd.createElement('text',[1,6,'len:']);
var len = brd.create('slider',[[2,6],[6,6],[0,2,6]]); brd.createElement('text',[1,6,'len:']);
var rho = brd.createElement('slider', [[2,5],[6,5],[0,0,2*Math.PI]]); brd.createElement('text',[1,5,'&rho;:']);
var rho = brd.create('slider', [[2,5],[6,5],[0,0,2*Math.PI]]); brd.createElement('text',[1,5,'&rho;:']);
var f = brd.createElement('curve',  
var f = brd.create('curve',  
   [function(phi) { return p.Value()/(1-eps.Value()*Math.cos(phi+rho.Value())); }, [1,0], 0,function(){return len.Value()*Math.PI}],       
   [function(phi) { return p.Value()/(1-eps.Value()*Math.cos(phi+rho.Value())); }, [1,0], 0,function(){return len.Value()*Math.PI}],       
   {curveType:'polar', strokewidth:2, strokeColor:'#CA7291'}
   {curveType:'polar', strokewidth:2, strokeColor:'#CA7291'}
   );         
   );         
var q = brd.createElement('glider', [f], {style:6,name:'G'});  
var q = brd.create('glider', [f], {style:6,name:'G'});  
brd.createElement('tangent', [q], {dash:3});  
brd.create('tangent', [q], {dash:3});  
brd.addHook(function(){$('ausgabe').innerHTML = (p.Value()).toFixed(1) + "/(1 - (" + (eps.Value()).toFixed(1) + ")*cos(&phi;+"+(rho.Value()).toFixed(1) +"))";});
brd.addHook(function(){document.getElementById('ausgabe').innerHTML = (p.Value()).toFixed(1) + "/(1 - (" + (eps.Value()).toFixed(1) + ")*cos(&phi;+"+(rho.Value()).toFixed(1) +"))";});
</jsxgraph>
</jsxgraph>


===The JavaScript code to produce this picture===
===The JavaScript code to produce this picture===
<source lang="xml">
<source lang="javascript">
<jsxgraph board="brd" width="600" height="500">
var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:true,boundingbox: [-12, 10, 12, -10]});
var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:true,originX:300,originY:250,unitX:25,unitY:25});
var p = brd.create('slider',[[2,8],[6,8],[0,3,6]]); brd.createElement('text',[1,8,'p:']);
var p = brd.createElement('slider',[[2,8],[6,8],[0,3,6]]); brd.createElement('text',[1,8,'p:']);
var eps = brd.create('slider',[[2,7],[6,7],[-6,0.5,6]]); brd.createElement('text',[1,7,'&epsilon;:']);
var eps = brd.createElement('slider',[[2,7],[6,7],[-6,0.5,6]]); brd.createElement('text',[1,7,'&epsilon;:']);
var len = brd.create('slider',[[2,6],[6,6],[0,3,6]]); brd.createElement('text',[1,6,'len:']);
var len = brd.createElement('slider',[[2,6],[6,6],[0,3,6]]); brd.createElement('text',[1,6,'len:']);
var rho = brd.create('slider', [[2,5],[6,5],[0,0,2*Math.PI]]); brd.createElement('text',[1,5,'&rho;:']);
var rho = brd.createElement('slider', [[2,5],[6,5],[0,0,2*Math.PI]]); brd.createElement('text',[1,5,'&rho;:']);
var f = brd.create('curve',  
var f = brd.createElement('curve',  
   [function(phi) { return p.Value()/(1-eps.Value()*Math.cos(phi+rho.Value())); }, [1,0], 0,function(){return len.Value()*Math.PI}],       
   [function(phi) { return p.Value()/(1-eps.Value()*Math.cos(phi+rho.Value())); }, [1,0], 0,function(){return len.Value()*Math.PI}],       
   {curveType:'polar', strokewidth:2, strokeColor:'#CA7291'}
   {curveType:'polar', strokewidth:2, strokeColor:'#CA7291'}
   );         
   );         
var q = brd.createElement('glider', [f], {style:6,name:'G'});  
var q = brd.create('glider', [f], {style:6,name:'G'});  
brd.createElement('tangent', [q], {dash:3});  
brd.create('tangent', [q], {dash:3});  
brd.addHook(function(){$('ausgabe').innerHTML = (p.Value()).toFixed(1) + "/(1 - (" + (eps.Value()).toFixed(1) + ")*cos(&phi;+"+(rho.Value()).toFixed(1) +"))";});
brd.addHook(function(){document.getElementById('ausgabe').innerHTML = (p.Value()).toFixed(1) + "/(1 - (" + (eps.Value()).toFixed(1) + ")*cos(&phi;+"+(rho.Value()).toFixed(1) +"))";});
</jsxgraph>
</source>
</source>
[[Category:Examples]]
[[Category:Examples]]
[[Category:Curves]]
[[Category:Curves]]

Latest revision as of 13:05, 3 March 2021

The equation of the curve is

[math]\displaystyle{ \, r = \frac{p}{1-\epsilon\cdot cos(\phi+\rho)}; }[/math]


 

The JavaScript code to produce this picture

var brd = JXG.JSXGraph.initBoard('jxgbox',{axis:true,boundingbox: [-12, 10, 12, -10]});
var p = brd.create('slider',[[2,8],[6,8],[0,3,6]]); brd.createElement('text',[1,8,'p:']);
var eps = brd.create('slider',[[2,7],[6,7],[-6,0.5,6]]); brd.createElement('text',[1,7,'&epsilon;:']);
var len = brd.create('slider',[[2,6],[6,6],[0,3,6]]); brd.createElement('text',[1,6,'len:']);
var rho = brd.create('slider', [[2,5],[6,5],[0,0,2*Math.PI]]); brd.createElement('text',[1,5,'&rho;:']);
var f = brd.create('curve', 
   [function(phi) { return p.Value()/(1-eps.Value()*Math.cos(phi+rho.Value())); }, [1,0], 0,function(){return len.Value()*Math.PI}],      
   {curveType:'polar', strokewidth:2, strokeColor:'#CA7291'}
  );        
var q = brd.create('glider', [f], {style:6,name:'G'}); 
brd.create('tangent', [q], {dash:3}); 
brd.addHook(function(){document.getElementById('ausgabe').innerHTML = (p.Value()).toFixed(1) + "/(1 - (" + (eps.Value()).toFixed(1) + ")*cos(&phi;+"+(rho.Value()).toFixed(1) +"))";});