Rolling Reuleaux pentagon: Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary |
A WASSERMANN (talk | contribs) No edit summary |
||
Line 35: | Line 35: | ||
var rol5 = JXG.Math.Numerics.createRoulette(line, reuleauxPentagon, -2, Math.PI/90, 1, 50, [A,B,C,D]); | var rol5 = JXG.Math.Numerics.createRoulette(line, reuleauxPentagon, -2, Math.PI/90, 1, 50, [A,B,C,D]); | ||
var rol3 = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, -1, 20, [C,D]); | var rol3 = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, -1, 20, [C,D]); | ||
</jsxgraph> | </jsxgraph> | ||
===The underlying JavaScript code=== | ===The underlying JavaScript code=== | ||
<source lang="javascript"> | <source lang="javascript"> | ||
var brd = JXG.JSXGraph.initBoard('jxgbox',{boundingbox:[-2,7,20,-3], keepaspectratio:true}); | |||
brd.renderer.container.style.backgroundColor = '#3d1c24'; // background color board | |||
brd.suspendUpdate(); | |||
// Pentagon | |||
var A = brd.create('point',[-2,-2]); | |||
var B = brd.create('point',[0,0]); | |||
var pol5 = brd.create('regularpolygon',[A,B,5], {withLines:false, fillColor:'none', highlightFillColor:'none', fillOpacity:0.0}); | |||
for (var i=0;i<5;i++) pol5.vertices[i].setProperty({color:'#3d1c24'}); | |||
// Triangle | |||
var C = brd.create('point',[-2,-2]); | |||
var D = brd.create('point',[C.X()+3/5*(1+Math.sqrt(5))*0.5*A.Dist(B), C.Y()]); | |||
var pol3 = brd.create('regularpolygon',[C,D,3], {withLines:false, fillColor:'none', highlightFillColor:'none', fillOpacity:0.0}); | |||
for (i=0;i<3;i++) pol3.vertices[i].setProperty({color:'#3d1c24'}); | |||
var line = brd.create('curve',[function(t){return t;}, function(t){return -2;}], | |||
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#d6bb55', highlightFillColor:'#d6bb55'}); | |||
var reuleauxPentagon = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol5.vertices, 5), | |||
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'}); | |||
var reuleauxTriangle = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol3.vertices, 3), | |||
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'}); | |||
brd.unsuspendUpdate(); | |||
var rol5 = JXG.Math.Numerics.createRoulette(line, reuleauxPentagon, -2, Math.PI/90, 1, 50, [A,B,C,D]); | |||
var rol3 = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, -1, 20, [C,D]); | |||
</source> | </source> | ||
Revision as of 20:33, 3 October 2010
The underlying JavaScript code
var brd = JXG.JSXGraph.initBoard('jxgbox',{boundingbox:[-2,7,20,-3], keepaspectratio:true});
brd.renderer.container.style.backgroundColor = '#3d1c24'; // background color board
brd.suspendUpdate();
// Pentagon
var A = brd.create('point',[-2,-2]);
var B = brd.create('point',[0,0]);
var pol5 = brd.create('regularpolygon',[A,B,5], {withLines:false, fillColor:'none', highlightFillColor:'none', fillOpacity:0.0});
for (var i=0;i<5;i++) pol5.vertices[i].setProperty({color:'#3d1c24'});
// Triangle
var C = brd.create('point',[-2,-2]);
var D = brd.create('point',[C.X()+3/5*(1+Math.sqrt(5))*0.5*A.Dist(B), C.Y()]);
var pol3 = brd.create('regularpolygon',[C,D,3], {withLines:false, fillColor:'none', highlightFillColor:'none', fillOpacity:0.0});
for (i=0;i<3;i++) pol3.vertices[i].setProperty({color:'#3d1c24'});
var line = brd.create('curve',[function(t){return t;}, function(t){return -2;}],
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#d6bb55', highlightFillColor:'#d6bb55'});
var reuleauxPentagon = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol5.vertices, 5),
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'});
var reuleauxTriangle = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol3.vertices, 3),
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'});
brd.unsuspendUpdate();
var rol5 = JXG.Math.Numerics.createRoulette(line, reuleauxPentagon, -2, Math.PI/90, 1, 50, [A,B,C,D]);
var rol3 = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, -1, 20, [C,D]);