Create your own constructions/visualizations using JavaScript: Difference between revisions
From JSXGraph Wiki
No edit summary  | 
				No edit summary  | 
				||
| Line 89: | Line 89: | ||
**draft  | **draft  | ||
**trace  | **trace  | ||
Additional properties of a line:  | *Additional properties of a line:  | ||
**straightFirst  | |||
**straightLast  | |||
There are no additional properties of a circle  | |||
*Additional properties for an element:  | |||
**needsRegularUpdate = [true]/false (eg axis are set to needsRegularUpdate=false) These elements are updated only, if the origin of the board is moved or after zooming  | |||
Additional properties for an element:  | *Possible parameters:  | ||
<source lang="javascript">  | |||
Possible parameters:  | |||
el.setProperty('key1:value1','key2:value2',...);  | el.setProperty('key1:value1','key2:value2',...);  | ||
el.setProperty([key1:value1],[key2:value2],...);  | el.setProperty([key1:value1],[key2:value2],...);  | ||
el.setProperty({key1:value1, key2:value2},...);  | el.setProperty({key1:value1, key2:value2},...);  | ||
</source>  | |||
Revision as of 20:49, 15 September 2008
First step
Link to prototye.js and to jsxgraphcore.js:
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/prototype.js"></script>
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script>
Second step
Insert a div inside of the document body:
<div id="box" class="jxgbox" style="width:400px; height:400px;"></div>
Third step
Connect JXG with the div (usually at the end of the document body) and call initBoard():
<script type="text/javascript">
 var board = JXG.JSXGraph.initBoard('box', {originX: 100, originY: 200, unitX: 50, unitY: 50});
</script>
- Parameter 1: id of the division
 - Parameter 2: properties of the board. Possible entries are:
- originX
 - originY
 - unitX
 - unitY
 - zoomX
 - zoomY
 
 
More than one boards can be initialised simultaneously in one HTML file.
Fourth step: Creating geometric elements
Through the variable board new geometry elements can be added to the board. All elements are added with the method createElement():
board.createElement('point', [1,3], {name:'A', strokecolor:'red'});
Another example:
board.createElement('point', [function(){return s.X();},function(){return t.X()}], {trace:true});
The parameters of createElement() are:
board.createElement(elementType, parentElements, attributes);
where
- elementType is a string containing the type of the element which is constructed. At the moment, possible types are:
- primitive elements:
- angle
 - arc
 - arrow
 - circle
 - curve
 - group
 - line
 - point
 - polygon
 - sector
 - text
 - transform
 
 - composite elements:
- arrowparallel
 - bisector
 - circumcircle
 - circumcirclemidpoint
 - integral
 - midpoint
 - mirrorpoint
 - normal
 - parallel
 - parallelpoint
 - perpendicular
 - perpendicularpoint
 - reflection
 
 
 - primitive elements:
 - parentElements is an array containing the parameters which define the element. This can be parent elements like two points which define a line. It can also consist of JavaScript functions, numbers, and strings containing GEONExT syntax. The possible array elements depend on the element type.
 - attributes is a JavaScript object. Usually it is given in the "literal object" form
 
{key1:value1, key2:value2, ...}
- Properties of a point:
- style
 - strokeColor
 - strokeWidth
 - fillColor
 - highlightStrokeColor
 - highlightFillColor
 - labelColor
 - visible
 - fixed
 - draft
 - trace
 
 - Additional properties of a line:
- straightFirst
 - straightLast
 
 
There are no additional properties of a circle
- Additional properties for an element:
- needsRegularUpdate = [true]/false (eg axis are set to needsRegularUpdate=false) These elements are updated only, if the origin of the board is moved or after zooming
 
 - Possible parameters:
 
el.setProperty('key1:value1','key2:value2',...);
el.setProperty([key1:value1],[key2:value2],...);
el.setProperty({key1:value1, key2:value2},...);