Geometric constructions with JessieScript: Difference between revisions
From JSXGraph Wiki
| A WASSERMANN (talk | contribs) | No edit summary | ||
| Line 47: | Line 47: | ||
| <jsxgraph width="600" height="450" box="jxgbox"> | <jsxgraph width="600" height="450" box="jxgbox"> | ||
|          var board, cons1, cons2; |          var board, cons1, cons2; | ||
|          board = JXG.JSXGraph.initBoard('jxgbox', {grid:true,  |          board = JXG.JSXGraph.initBoard('jxgbox', {grid:true, boundingbox: [-1, 6, 11, -3], axis:true}); | ||
|          cons1 = board.construct("A(1,1);B(2,2.5);C(1,3);G(5,3);H(6,4);[GH];k(G,1);AB(5,-1);X(6,-1);Y(7,-2);k(Y,X);k(A,[BC]);k(B,[AC]);"); |          cons1 = board.construct("A(1,1);B(2,2.5);C(1,3);G(5,3);H(6,4);[GH];k(G,1);AB(5,-1);X(6,-1);Y(7,-2);k(Y,X);k(A,[BC]);k(B,[AC]);"); | ||
| Line 74: | Line 74: | ||
| <jsxgraph width="600" height="450" box="box"> | <jsxgraph width="600" height="450" box="box"> | ||
|          var board, cons1, cons2; |          var board, cons1, cons2; | ||
|          board = JXG.JSXGraph.initBoard('box', {grid:true,  |          board = JXG.JSXGraph.initBoard('box', {grid:true, boundingbox: [-1, 6, 11, -3], axis:true}); | ||
|          cons1 = board.construct("A(1,1);B(2,2.5);C(1,3);G(5,3);H(6,4);[GH];k(G,1);AB(5,-1);X(6,-1);Y(7,-2);k(Y,X);k(A,[BC]);k(B,[AC]);"); |          cons1 = board.construct("A(1,1);B(2,2.5);C(1,3);G(5,3);H(6,4);[GH];k(G,1);AB(5,-1);X(6,-1);Y(7,-2);k(Y,X);k(A,[BC]);k(B,[AC]);"); | ||
Revision as of 14:28, 7 June 2011
Easy JSXGraph constructions with geometric elements can be created by a mathematical syntax by using the function
board.construct(...);Possible elements:
| Construction | Description | 
|---|---|
| A(1,1) | Point with name 'A' at position (1,1) | 
| ZY(0.5|1) | Point with name 'ZY' at position (0.5,1) | 
| ]AB[ | straight line through points A and B | 
| [AB[ | ray through points A and B, stopping at A | 
| ]AB] | ray through points A and B, stopping at B | 
| [AB] | segment through points A and B | 
| g=[AB] | segment through points A and B, named by 'g' | 
| k(A,1) | circle with midpoint A and radius 1 | 
| k(A,B) | circle with midpoint A through point B on the circle line | 
| k(A,[BC]) | circle with midpoint A and radius defined by the length of the (not necessarily existing) segement [BC] | 
| k_1=k(A,1) | circle with midpoint A and radius 1, named by 'k_1' | 
The different elements have to be separated by semicolon.
The function returns an object with all the created elements so that afterwards properties can be set. The access works by
| Element | Description | 
|---|---|
| constr.points[i] | take i-th point of the construction 'constr' | 
| constr.lines[i] | take i-th line (or rays or segement) of the construction 'constr' | 
| constr.circles[i] | take i-th circle of the construction 'constr' | 
| constr.A | take element with name 'A' of the construction 'constr' | 
Example
The JavaScript code
<jsxgraph width="600" height="450" box="box">
        var board, cons1, cons2;
        board = JXG.JSXGraph.initBoard('box', {grid:true, boundingbox: [-1, 6, 11, -3], axis:true});
        
        cons1 = board.construct("A(1,1);B(2,2.5);C(1,3);G(5,3);H(6,4);[GH];k(G,1);AB(5,-1);X(6,-1);Y(7,-2);k(Y,X);k(A,[BC]);k(B,[AC]);");
        cons2 = board.construct("J(7,4);[GJ[;K(8,4);]GK[;L(2.4|5);f=[AC];k1=k(C,0.5);C_1(4|4);l_2=[BC]");
        
        cons1.points[0].setProperty({face:'diamond',size:7,strokeColor:'#8B2252',fillColor:'#8B2252'});
        cons1.circles[1].setProperty({strokeColor:'#BA55D3'});
        cons2.J.setProperty({face:'triangleUp',size:8,strokeColor:'black',fillColor:'#EE82EE'});
        cons2.lines[1].setProperty({strokeColor:'#32CD32',shadow:true});
        
        cons1.X.strokeColor('black');
        cons1.X.fillColor('#FFB90F');
        cons1.X.shadow(true);
        cons1.Y.visible(false);
        cons2.l_2.strokeWidth(4);
        cons1.X.face('>');
        cons1.X.size(8);
        cons1.X.labelColor('#FFB90F');
        cons2.k1.dash(2);
</jsxgraph>
