Difference between revisions of "Rolling Reuleaux pentagon"
From JSXGraph Wiki
Jump to navigationJump to searchA WASSERMANN (talk | contribs) (New page: <jsxgraph width="0" height="0" box="nix"></jsxgraph> <html> <script type="text/javascript" src="/~alfred/jsxgraph/trunk/src/Roulette.js"></script> <form> <input type="button" value="start"...) |
A WASSERMANN (talk | contribs) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
<html> | <html> | ||
− | |||
<form> | <form> | ||
− | <input type="button" value="start" onclick="start();"> | + | <input type="button" value="start" onclick="rol5.start();rol3.start();"> |
− | <input type="button" value="stop" onclick="stop();"> | + | <input type="button" value="stop" onclick="rol5.stop();rol3.stop();"> |
<input type="button" value="one step" onclick="rol5.rolling();rol3.rolling();"> | <input type="button" value="one step" onclick="rol5.rolling();rol3.rolling();"> | ||
</form></html> | </form></html> | ||
Line 15: | Line 13: | ||
// Pentagon | // Pentagon | ||
var A = brd.create('point',[-2,-2]); | var A = brd.create('point',[-2,-2]); | ||
− | var B = brd.create('point',[ | + | var B = brd.create('point',[0,0]); |
var pol5 = brd.create('regularpolygon',[A,B,5], {withLines:false, fillColor:'none', highlightFillColor:'none', fillOpacity: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'}); | for (var i=0;i<5;i++) pol5.vertices[i].setProperty({color:'#3d1c24'}); | ||
Line 25: | Line 23: | ||
for (i=0;i<3;i++) pol3.vertices[i].setProperty({color:'#3d1c24'}); | for (i=0;i<3;i++) pol3.vertices[i].setProperty({color:'#3d1c24'}); | ||
− | var line = brd.create(' | + | var line = brd.create('curve',[function(t){return t;}, function(t){return -2;}], |
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#d6bb55', highlightFillColor:'#d6bb55'}); | {strokeWidth:6, strokeColor:'#d66d55', fillColor:'#d6bb55', highlightFillColor:'#d6bb55'}); | ||
− | var reuleauxPentagon = brd.create('curve', JXG.Math. | + | var reuleauxPentagon = brd.create('curve', JXG.Math.Geometry.reuleauxPolygon(pol5.vertices, 5), |
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'}); | {strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'}); | ||
− | var reuleauxTriangle = brd.create('curve', JXG.Math. | + | var reuleauxTriangle = brd.create('curve', JXG.Math.Geometry.reuleauxPolygon(pol3.vertices, 3), |
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'}); | {strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'}); | ||
brd.unsuspendUpdate(); | brd.unsuspendUpdate(); | ||
− | var rol5 = | + | var rol5 = brd.createRoulette(line, reuleauxPentagon, -2, Math.PI/45, 1, 100, [A,B,C,D]); |
− | var rol3 = | + | var rol3 = brd.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/45, -1, 40, [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.Geometry.reuleauxPolygon(pol5.vertices, 5), | ||
+ | {strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'}); | ||
+ | var reuleauxTriangle = brd.create('curve', JXG.Math.Geometry.reuleauxPolygon(pol3.vertices, 3), | ||
+ | {strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'}); | ||
+ | brd.unsuspendUpdate(); | ||
+ | |||
+ | var rol5 = brd.createRoulette(line, reuleauxPentagon, -2, Math.PI/45, 1, 100, [A,B,C,D]); | ||
+ | var rol3 = brd.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/45, -1, 40, [C,D]); | ||
</source> | </source> | ||
Latest revision as of 17:53, 20 February 2013
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.Geometry.reuleauxPolygon(pol5.vertices, 5),
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#ad5544', highlightFillColor:'#ad5544'});
var reuleauxTriangle = brd.create('curve', JXG.Math.Geometry.reuleauxPolygon(pol3.vertices, 3),
{strokeWidth:6, strokeColor:'#d66d55', fillColor:'#703545', highlightFillColor:'#703545'});
brd.unsuspendUpdate();
var rol5 = brd.createRoulette(line, reuleauxPentagon, -2, Math.PI/45, 1, 100, [A,B,C,D]);
var rol3 = brd.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/45, -1, 40, [C,D]);