Reuleaux pentagon: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 18: Line 18:
var B = brd.create('point',[2,-2]);
var B = brd.create('point',[2,-2]);
var pol = brd.create('regularpolygon',[A,B,5], {withLines:false, fillColor:'none', highlightFillColor:'none'});
var pol = brd.create('regularpolygon',[A,B,5], {withLines:false, fillColor:'none', highlightFillColor:'none'});
 
var reuleauxPentagon = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol.vertices, 5),  
 
var reuleauxPentagon = brd.create('curve',[
      function(t) {
        var pi2_5 = pi2/5;
        var p = pol.vertices;
        var d = p[0].Dist(p[2]);
        var t1 = (t%pi2 + pi2) % pi2;
        var n = Math.floor(t1 / pi2_5)%5;
        if (isNaN(n)) return n;
        var beta = JXG.Math.Geometry.rad([p[n].X()+1,p[n].Y()],p[n],p[(n+2)%5]);
        t1 -= n*pi2_5;
        t1 *=0.5;
        t1 += beta;
        return p[n].X()+d*Math.cos(t1);
      },
      function(t) {
        var pi2_5 = pi2/5;
        var p = pol.vertices;
        var d = p[0].Dist(p[2]);
        var t1 = (t%pi2 + pi2) % pi2;
        var n = Math.floor(t1 / pi2_5)%5;
        if (isNaN(n)) return n;
        var beta = JXG.Math.Geometry.rad([p[n].X()+1,p[n].Y()],p[n],p[(n+2)%5]);
        t1 -= n*pi2_5;
        t1*=0.5;
        t1 += beta;
        return p[n].Y()+d*Math.sin(t1);
      },
      0, pi2],
       {color:'#093083', highlightFillColor:'#093083'});
       {color:'#093083', highlightFillColor:'#093083'});
        
        
Line 57: Line 28:
                           ]);
                           ]);
var pol3 = brd.create('regularpolygon',[C,D,3], {withLines:false, fillColor:'#e8501f', highlightFillColor:'#e8501f'});
var pol3 = brd.create('regularpolygon',[C,D,3], {withLines:false, fillColor:'#e8501f', highlightFillColor:'#e8501f'});
var reuleauxTriangle = brd.create('curve', JXG.Math.Numerics.reuleauxPolygon(pol3.vertices, 3),
      {color:'#e8501f', highlightFillColor:'#e8501f'});


var reuleauxTriangle = brd.create('curve',[
      function(t) {
        var pi2_3 = pi2/3;
        var p = pol3.vertices;
        var d = p[0].Dist(p[1]);
        var t1 = (t%(2*Math.PI) + pi2) % pi2;
        var n = Math.floor(t1 / pi2_3)%3;
        if (isNaN(n)) return n;
        var beta = JXG.Math.Geometry.rad([p[n].X()+1,p[n].Y()],p[n],p[(n+1)%3]);
        t1 -= n*pi2_3;
        t1*=0.5;
        t1 += beta;
        return p[n].X()+d*Math.cos(t1);
      },
      function(t) {
        var pi2_3 = pi2/3;
        var p = pol3.vertices;
        var d = p[0].Dist(p[1]);
        var t1 = (t%pi2 + pi2) % pi2;
        var n = Math.floor(t1 / pi2_3)%3;
        if (isNaN(n)) return n;
        var beta = JXG.Math.Geometry.rad([p[n].X()+1,p[n].Y()],p[n],p[(n+1)%3]);
        t1 -= n*pi2_3;
        t1*=0.5;
        t1 += beta;
        return p[n].Y()+d*Math.sin(t1);
      },
      0, pi2],
      {color:'#e8501f', highlightFillColor:'#e8501f'});
brd.unsuspendUpdate();
brd.unsuspendUpdate();
var rol = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, 10, [C,D]); </jsxgraph>
var rol = JXG.Math.Numerics.createRoulette(reuleauxPentagon, reuleauxTriangle, 6*Math.PI/5, Math.PI/90, 10, [C,D]); </jsxgraph>

Revision as of 20:03, 2 October 2010

The underlying JavaScript code