Euler's spiral (Clothoid): Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary |
A WASSERMANN (talk | contribs) No edit summary |
||
Line 17: | Line 17: | ||
function(){return -len.Value()*Math.PI;}, function(){return len.Value()*Math.PI;}], | function(){return -len.Value()*Math.PI;}, function(){return len.Value()*Math.PI;}], | ||
{strokewidth:1}); | {strokewidth:1}); | ||
var p = b2.createElement('glider',[c]); | var p = b2.createElement('glider',[c],{name:''}); | ||
var t = b2.createElement('tangent',[p],{dash:3,strokeWidth:1,strokeColor:'red'}); | var t = b2.createElement('tangent',[p],{dash:3,strokeWidth:1,strokeColor:'red'}); | ||
</jsxgraph> | </jsxgraph> | ||
Line 33: | Line 33: | ||
function(){return -len.Value()*Math.PI;}, function(){return len.Value()*Math.PI;}], | function(){return -len.Value()*Math.PI;}, function(){return len.Value()*Math.PI;}], | ||
{strokewidth:1}); | {strokewidth:1}); | ||
var p = b2.createElement('glider',[c],{name:''}); | |||
var t = b2.createElement('tangent',[p],{dash:3,strokeWidth:1,strokeColor:'red'}); | |||
</jsxgraph> | </jsxgraph> | ||
</source> | </source> |
Revision as of 08:40, 18 March 2009
Euler's spiral is defined as a curve whose curvature changes linearly with its curve length. Other names for the spiral are clothoid and spiral of Cornu or Cornu spiral.
Euler spirals are widely used as transition curve in rail track / highway engineering for connecting and transiting the geometry between a tangent and a circular curve.
The curve can be described in parametric form by
- [math]\displaystyle{ x = k\cdot\int_0^t \sin(\frac{u^2}{2}) du\; }[/math]
- [math]\displaystyle{ y = k\cdot\int_0^t \cos(\frac{u^2}{2}) du\; }[/math]
The JavaScript code to produce this picture
<jsxgraph width="500" height="500" box="box2">
b2 = JXG.JSXGraph.initBoard('box2', {originX: 250, originY: 250, unitX: 25, unitY: 25});
var k1 = b2.createElement('slider', [[1,8],[5,8],[0,2,8]]);
var len = b2.createElement('slider', [[1,7],[5,7],[1,2,3.2]]);
var c = b2.createElement('curve',
[function(t){ return k1.Value()*b2.I([0,t],function(u){return Math.sin(u*u*0.5);}); },
function(t){ return k1.Value()*b2.I([0,t],function(u){return Math.cos(u*u*0.5);}); },
function(){return -len.Value()*Math.PI;}, function(){return len.Value()*Math.PI;}],
{strokewidth:1});
var p = b2.createElement('glider',[c],{name:''});
var t = b2.createElement('tangent',[p],{dash:3,strokeWidth:1,strokeColor:'red'});
</jsxgraph>