<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://jsxgraph.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.147.85.152</id>
	<title>JSXGraph Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://jsxgraph.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.147.85.152"/>
	<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Special:Contributions/84.147.85.152"/>
	<updated>2026-04-06T14:51:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Points_with_constraints_(dup)&amp;diff=236</id>
		<title>Points with constraints (dup)</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Points_with_constraints_(dup)&amp;diff=236"/>
		<updated>2008-09-17T20:57:12Z</updated>

		<summary type="html">&lt;p&gt;84.147.85.152: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A point can depend on another geometric object. This dependence can be given by using JavaScript syntax or by using&lt;br /&gt;
GEONExT syntax. &lt;br /&gt;
=== GEONExT syntax ===&lt;br /&gt;
Here is an example using GEONExT syntax.&lt;br /&gt;
The point A is draggable. The point B depends on point A: Its y-coordinate is set to 1 and its x-coordinate is set&lt;br /&gt;
to the x-coordinate of A.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var b = JXG.JSXGraph.initBoard(&#039;jxgbox1&#039;, {originX: 40, originY: 100, unitX: 40, unitY: 40});&lt;br /&gt;
var free = b.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;, style:5});&lt;br /&gt;
var dep = b.createElement(&#039;point&#039;,[&amp;quot;X(A)&amp;quot;,1], {name:&#039;B&#039;, style:8});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/prototype.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;jxgbox1&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:600px; height:200px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var b = JXG.JSXGraph.initBoard(&#039;jxgbox1&#039;, {originX: 40, originY: 100, unitX: 40, unitY: 40});&lt;br /&gt;
var free = b.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;, style:5});&lt;br /&gt;
var dep = b.createElement(&#039;point&#039;,[&amp;quot;X(A)&amp;quot;,1], {name:&#039;B&#039;, style:8});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
=== JavaScript syntax ===&lt;br /&gt;
Now we do exactly the same with JavaScript syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var b2 = JXG.JSXGraph.initBoard(&#039;jxgbox2&#039;, {originX: 40, originY: 100, unitX: 40, unitY: 40});&lt;br /&gt;
var free = b2.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;, style:5});&lt;br /&gt;
var dep = b2.createElement(&#039;point&#039;,[function(){ return free.X();}, 1], {name:&#039;B&#039;, style:8});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;jxgbox2&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:600px; height:200px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var b2 = JXG.JSXGraph.initBoard(&#039;jxgbox2&#039;, {originX: 40, originY: 100, unitX: 40, unitY: 40});&lt;br /&gt;
var free = b2.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;, style:5});&lt;br /&gt;
var dep = b2.createElement(&#039;point&#039;,[function(){ return free.X();}, 1], {name:&#039;B&#039;, style:8});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
The JavaScript syntax is much more robust against changes of the construction, but of course it looks more complicated.&lt;br /&gt;
Lets look at it again in detail:&lt;br /&gt;
First we construct a free, draggable point called &amp;quot;free&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var free = b2.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;, style:5});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then we construct the dependent point &amp;quot;dep&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var dep = b2.createElement(&#039;point&#039;,[function(){ return free.X();}, 1], {name:&#039;B&#039;, style:8});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The first coordinate of &amp;quot;dep&amp;quot; is given as an anonymous function:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function(){ return free.X();}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This function returns the x-coordinate of the point &amp;quot;free&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>84.147.85.152</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Circle&amp;diff=235</id>
		<title>Circle</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Circle&amp;diff=235"/>
		<updated>2008-09-17T20:53:03Z</updated>

		<summary type="html">&lt;p&gt;84.147.85.152: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Circle through two points ==&lt;br /&gt;
One possibility to construct a circle is to give its center and a point defining its radius.&lt;br /&gt;
Lets construct two points &amp;quot;A&amp;quot; and &amp;quot;B&amp;quot;. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var b = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {originX: 200, originY: 100, unitX: 50, unitY: 50});&lt;br /&gt;
var p1 = board.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;,style:6});&lt;br /&gt;
var p2 = board.createElement(&#039;point&#039;,[2,-1], {name:&#039;B&#039;,style:6});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then we construct a circle through &amp;quot;A&amp;quot; and &amp;quot;B&amp;quot;. The setting of a new color and changing the stroke-width is not necessary.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var ci = brd.createElement(&#039;circle&#039;,[&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;], {strokeColor:&#039;#00ff00&#039;,strokeWidth:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/prototype.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;jxgbox&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:500px; height:200px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 var brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {originX: 200, originY: 100, unitX: 50, unitY: 50});&lt;br /&gt;
 var p1 = brd.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;,style:6});&lt;br /&gt;
 var p2 = brd.createElement(&#039;point&#039;,[2,-1], {name:&#039;B&#039;,style:6});&lt;br /&gt;
 var ci = brd.createElement(&#039;circle&#039;,[&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;], {strokeColor:&#039;#00ff00&#039;,strokeWidth:2});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally it is better to use JavaScript variables and not Geometry-Element names when constructing.&lt;br /&gt;
Now, we do the same examples with JavaScript variables. To show other variations, we use a dashed stroke style and set a fill color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var ci2 = brd2.createElement(&#039;circle&#039;,[p1,p2], &lt;br /&gt;
    {strokeWidth:3, dash:2, fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;jxgbox2&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:500px; height:200px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 var brd2 = JXG.JSXGraph.initBoard(&#039;jxgbox2&#039;, {originX: 200, originY: 100, unitX: 50, unitY: 50});&lt;br /&gt;
 var p1 = brd2.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;,style:6});&lt;br /&gt;
 var p2 = brd2.createElement(&#039;point&#039;,[2,-1], {name:&#039;B&#039;,style:6});&lt;br /&gt;
 var ci2 = brd2.createElement(&#039;circle&#039;,[p1,p2], &lt;br /&gt;
  {strokeWidth:3, dash:2, fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic fill-opacity ===&lt;br /&gt;
We can make the fill-opacity dynamic and make it dependent on the position of &amp;quot;B&amp;quot;, i.e. the JavaScript variable &amp;quot;p2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var ci3 = brd3.createElement(&#039;circle&#039;,[p1,p2], &lt;br /&gt;
    {strokeWidth:1, fillColor:&#039;#555500&#039;, fillOpacity:function(){ return p2.X()*0.25;} });&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;jxgbox3&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:500px; height:200px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 var brd3 = JXG.JSXGraph.initBoard(&#039;jxgbox3&#039;, {originX: 200, originY: 100, unitX: 50, unitY: 50});&lt;br /&gt;
 var p1 = brd3.createElement(&#039;point&#039;,[0,0], {name:&#039;A&#039;,style:6});&lt;br /&gt;
 var p2 = brd3.createElement(&#039;point&#039;,[2,0], {name:&#039;B&#039;,style:6});&lt;br /&gt;
 var ci3 = brd3.createElement(&#039;circle&#039;,[p1,p2], &lt;br /&gt;
  {strokeWidth:1, fillColor:&#039;#555500&#039;, fillOpacity:function(){ return p2.X()*0.25;} });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>84.147.85.152</name></author>
	</entry>
</feed>