<?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=A+WASSERMANN</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=A+WASSERMANN"/>
	<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Special:Contributions/A_WASSERMANN"/>
	<updated>2026-04-05T04:09:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7909</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7909"/>
		<updated>2025-11-03T11:54:48Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var board, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = board.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
board.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
board.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgSmjDisplayMath = [ [ &amp;quot;$$&amp;quot;, &amp;quot;$$&amp;quot;], [&amp;quot;\[&amp;quot;, &amp;quot;\]&amp;quot;] ];&lt;br /&gt;
$wgSmjExtraInlineMath = [[ &amp;quot;\(&amp;quot;, &amp;quot;\)&amp;quot;] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var board, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = board.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
board.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
board.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7908</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7908"/>
		<updated>2025-11-03T11:51:45Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int x^2 dx.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7907</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7907"/>
		<updated>2025-11-03T11:43:10Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int x^2 dx.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7906</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7906"/>
		<updated>2025-11-03T11:39:23Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7905</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7905"/>
		<updated>2025-11-03T11:39:06Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
$$\int x^2 dx.$$&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7904</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7904"/>
		<updated>2025-11-02T20:41:29Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7903</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7903"/>
		<updated>2025-11-02T20:41:11Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\\(\int x^2 dx\\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7902</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7902"/>
		<updated>2025-11-02T20:39:47Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7901</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7901"/>
		<updated>2025-11-02T20:21:03Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7900</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7900"/>
		<updated>2025-11-02T20:20:31Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  () =&amp;gt; &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;&lt;br /&gt;
]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7899</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7899"/>
		<updated>2025-11-02T20:16:47Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script defer src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@4/tex-svg.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Takagi%E2%80%93Landsberg_curve&amp;diff=7898</id>
		<title>Takagi–Landsberg curve</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Takagi%E2%80%93Landsberg_curve&amp;diff=7898"/>
		<updated>2025-08-14T07:56:37Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The blancmange function is defined on the unit interval by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;    {\rm blanc}(x) = \sum_{n=0}^\infty {s(2^{n}x)\over 2^n},&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;s(x)&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
s(x)=\min_{n\in{\bold Z}}|x-n|, &lt;br /&gt;
that is, &amp;lt;math&amp;gt;s(x)&amp;lt;/math&amp;gt; is the distance from x to the nearest integer. The infinite sum defining &amp;lt;math&amp;gt;blanc(x)&amp;lt;/math&amp;gt; converges absolutely for all x, but the resulting curve is a fractal. The blancmange function is continuous but nowhere differentiable.&lt;br /&gt;
&lt;br /&gt;
The Takagi–Landsberg curve is a slight generalization, given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;    T_w(x) = \sum_{n=0}^\infty w^n s(2^{n}x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for a parameter w; thus the blancmange curve is the case &amp;lt;math&amp;gt;w = 1 / 2&amp;lt;/math&amp;gt;. For &amp;lt;math&amp;gt;w = 1 / 4&amp;lt;/math&amp;gt;, one obtains the parabola: the construction of the parabola by midpoint subdivision was described by Archimedes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;500&amp;quot; box=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
 var bd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true,boundingbox: [-0.05, 16, 1.27, -4]});&lt;br /&gt;
 var w = bd.create(&#039;slider&#039;, [[0,8],[0.8,8],[0,0.25,1.5]], {name:&#039;w&#039;});&lt;br /&gt;
 var N = bd.create(&#039;slider&#039;, [[0,7],[0.8,7],[0,5,40]], {name:&#039;N&#039;}); &lt;br /&gt;
 var s = function(x){ return Math.abs(x-Math.round(x)); };&lt;br /&gt;
 var c = bd.create(&#039;functiongraph&#039;, [&lt;br /&gt;
     function(x){&lt;br /&gt;
        var n, su, wval;&lt;br /&gt;
        su = 0.0;&lt;br /&gt;
        wval = w.Value();&lt;br /&gt;
        for (n=0;n&amp;lt;N.Value();n++) {&lt;br /&gt;
           su += Math.pow(wval,n)*s(Math.pow(2,n)*x);&lt;br /&gt;
        }&lt;br /&gt;
        return su;&lt;br /&gt;
     },0,1],{strokeColor:&#039;red&#039;});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code to produce this picture===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 var bd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true,boundingbox: [-0.05, 16, 1.27, -4]});&lt;br /&gt;
 var w = bd.create(&#039;slider&#039;, [[0,8],[0.8,8],[0,0.25,1.5]], {name:&#039;w&#039;});&lt;br /&gt;
 var N = bd.create(&#039;slider&#039;, [[0,7],[0.8,7],[0,5,40]], {name:&#039;N&#039;}); &lt;br /&gt;
 var s = function(x){ return Math.abs(x-Math.round(x)); };&lt;br /&gt;
 var c = bd.create(&#039;functiongraph&#039;, [&lt;br /&gt;
     function(x){&lt;br /&gt;
        var n, su, wval;&lt;br /&gt;
        su = 0.0;&lt;br /&gt;
        wval = w.Value();&lt;br /&gt;
        for (n=0;n&amp;lt;N.Value();n++) {&lt;br /&gt;
           su += Math.pow(wval,n)*s(Math.pow(2,n)*x);&lt;br /&gt;
        }&lt;br /&gt;
        return su;&lt;br /&gt;
     },0,1],{strokeColor:&#039;red&#039;});      &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===References===&lt;br /&gt;
* Teiji Takagi, &amp;quot;A Simple Example of a Continuous Function without Derivative&amp;quot;, Proc. Phys. Math. Japan, (1903) Vol. 1, pp. 176-177.&lt;br /&gt;
===External links===&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Blancmange_curve http://en.wikipedia.org/wiki/Blancmange_curve]&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Curves]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Hyperbola&amp;diff=7897</id>
		<title>Hyperbola</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Hyperbola&amp;diff=7897"/>
		<updated>2025-06-18T07:49:38Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.label.autoPosition = true;&lt;br /&gt;
JXG.Options.text.fontSize = 16;&lt;br /&gt;
JXG.Options.line.strokeWidth = 0.8;&lt;br /&gt;
&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, { boundingbox: [-5, 5, 5, -5], axis: true, showClearTraces: true});&lt;br /&gt;
&lt;br /&gt;
var h = board.create(&#039;hyperbola&#039;, [[-Math.sqrt(2),0], [Math.sqrt(2),0], [2, Math.sqrt(3)]]);&lt;br /&gt;
var l1 = board.create(&#039;line&#039;, [0, 1, 1], {dash: 1});&lt;br /&gt;
var l2 = board.create(&#039;line&#039;, [0, -1, 1], {dash: 1});&lt;br /&gt;
var p = board.create(&#039;point&#039;, [-1, -2], {trace: true, withLabel: false});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The underlying JavaScript code ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.label.autoPosition = true;&lt;br /&gt;
JXG.Options.text.fontSize = 16;&lt;br /&gt;
JXG.Options.line.strokeWidth = 0.8;&lt;br /&gt;
&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, { boundingbox: [-5, 5, 5, -5], axis: true, showClearTraces: true});&lt;br /&gt;
&lt;br /&gt;
var h = board.create(&#039;hyperbola&#039;, [[-Math.sqrt(2),0], [Math.sqrt(2),0], [2, Math.sqrt(3)]]);&lt;br /&gt;
var l1 = board.create(&#039;line&#039;, [0, 1, 1], {dash: 1});&lt;br /&gt;
var l2 = board.create(&#039;line&#039;, [0, -1, 1], {dash: 1});&lt;br /&gt;
var p = board.create(&#039;point&#039;, [-1, -2], {trace: true, withLabel: false});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Parabola&amp;diff=7683</id>
		<title>Parabola</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Parabola&amp;diff=7683"/>
		<updated>2024-10-19T20:39:14Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an example for JSXGraph with two boards and so called hooks into HTML.&lt;br /&gt;
That means the numbers below &#039;&#039;a&#039;&#039;, &#039;&#039;b&#039;&#039;, and &#039;&#039;c&#039;&#039; are updated if the points &#039;&#039;A&#039;&#039;, &#039;&#039;B&#039;&#039;, and &#039;&#039;C&#039;&#039; are dragged. And other way round,&lt;br /&gt;
these numbers are editable.&lt;br /&gt;
&lt;br /&gt;
See [[Slider and function plot]] for an easier example howto plot a parabola.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
hook = true;&lt;br /&gt;
board2 = JXG.JSXGraph.loadBoardFromString(&#039;box2&#039;, &#039;eNrtmm1v2zYQgD/bv4JAPteS7DgvmCYgSZNh2NACbVe0eykgW7TNRRYNiUrsFP3vuzseJblTXtwZWT8oAVre8cijyOfupIDhT5evX11+eBf1w/eXb97+/PpVFAyOg9BzUj+c6DhPon4vzOKljH6XarqQ2Sz9s/R9eQhtcRh61AUmKpvpfBkbpbMo9JoSdMalWegc9NwA1VQvlzIzoHMtUM50Zgp1J6NgHHqVgLMnEfhStBjW9cJlvFZLEJJoFqeFDL1agd3ryB/4obcmYWOFDQm3KjGLaHQ8RpUVUL2Qar4w4JtMWQKHnvUoBLjUSVlEw8AfHoGJlehhdJ6oLDYSRNFjhVuWFUg/z1WlpjZpiyxeOS21cTU6V3OFu0ePMvTrh8GnYdk+j+dscbI7rZduVLA1JmiMsFZoX2bKOPvxtpNx04e1wxFG5pWHhnVlafvRMo0nMnWm64btpjJmE7RelqlR908M+7TQt+tqo0io9JumnufmCe2BZEZlpabzIgdsXnlhmYc27QW7aO7Uw6NraxwLVFZeTV42h1mRR1k7HLHWeuNGzD/8KpuHMv9IMo+xljjmRsnblc55hUavokM8PWyQJpUzE70gHTVJOdHGAAjBYHwUeixQR07wjwYQdTnHAXirfYgec11TH9ZAA6+0YmFZpdXSKeS6KKqwIIFPJ4WscHDh4+/VFU6NCupL4mLB+0RNUq60guTQCJtagQHrVhJO4un1PNdlZlMC+7nin8oPdM1UKpmmfArI4b98AttBUceESyT+Vhqp8sh2FoFVORehWsZzGQ0GA0hp1ITcIgQcQGO1glSAYaIwixasIW0Smzg6G2x+HA3GuCsg9bc7z7GzvesCuobb4wh35wcVuHUylZiWCxfza0YGdlanyXuZF2BuKwblZToqnLHX43jDpP7p86fP7xaqEKAo4BSn6ETcxqDIJZCTiFtlFoJq0fqdwPkGX77Y+LNFAWdbruBElqtKWpO4ZnkdvRgNTtwREXGD4aE7JIAlzm2l4Qat1asWG8awqBvJjLFgO2CJEewU/c9PCAT6jkTS5DEEE1NoBbtNUAG5EFrFjSrUJHVunGSDNY+n0s1hBUuiyfW1tGRBEDXFfq/CuWEaHfjwc3Xl+86aYx8hVNkc+xF87K90ZAFsptHB+enL8+OXR4fEKidum6APcJBPsdlI6vZ5Dy5O8BeHNTbAa64O8iHtRCNH1ztTT4hnSWFRHyWJHG5N1xWxdZV1CttfRFmZpqDn3Pt3MYPzwH/5gV0yxpZ9GiiiwDvsNLcsBKXRLLOnhobrnY2N/xQkH3UpgDORl1kGpyLiTMAMMhc3dhKhZy5K9hAgweC0C5AuQJ43QLDSUJ2mksJfFWd/BH+5rwjBoTM/lGMbMKKOGFGjfDx2bxe0A1QFN2zs1daPcHu6Z27ZdGdwRw+CW5NrAfuK3K/RZQKb6Dp2bfdo2GC3gtfOvA3v/0ovTrH1EVUrKjq5p8LTvktV71R27zZwFAFu2YZfvrwKwVYez9t5PLqXx6DDscNxXzimKpNNGuMWFI/vQXGm8sJw7rRt7khjqz/CR3LqHcj8Tgr8+Ilg1vA8AKb9/PtGMOnt4DsBEzbLfWFWDLiyTQzUCFi1RYDm2RocSng7iOvzqURm72uacfcsrK159KI9j57sVNf9LpF2iXQ/df1lC4ynuxT1jsWOxf0U9UkLioH/WFU/uaeqn3ZVvavqz1XVL9vQDXao6cPu46jLo/uq6VdtNA6fXtQ7GDsY91XUp20sjh4r6pg7W6s6YtyV9a6sP09ZP2uD9/iBROp/j3/x/EZUd0ujj6DapdGWNHq0y9/f21C8/69G/r9Q9DsUOxT3guJFG4qnT0Zx2GXFDsXdUYRiXt+8wkt5dAeXroLBBsNC6Caf0TqdxHhFToRms5LRb28v38BhYhN1NpfKrDR3Mk/kTGVK5kaKX+w1rGu665VKVRhZUS7CRBbTXK3okkB8bUqZplJMnjhLc3DfXjKsVhkW8FBTI5OmFj9IWtT9fjgpQcro2i1e5GqI/RA2W8LYH/DWK7b64a12r0vY6tu7MXarPHfJ+R+tkHyx&#039;, &#039;Geonext&#039;);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;						&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;border: 0px solid black; text-align: center&amp;quot; width=&amp;quot;500px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;a&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;b&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;c&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_a&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;A&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_b&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;B&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_c&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;C&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 5, 7, -3], axis: true});&lt;br /&gt;
&lt;br /&gt;
var curve = board.create(&#039;functiongraph&#039;, [function(t){ &lt;br /&gt;
        return board2.select(&#039;A&#039;).X() * t * t + board2.select(&#039;B&#039;).X() * t + board2.select(&#039;C&#039;).X(); &lt;br /&gt;
    }, -10, 10]);						&lt;br /&gt;
			&lt;br /&gt;
function print_table() {&lt;br /&gt;
  if (hook){&lt;br /&gt;
    document.getElementById(&#039;print_a&#039;).value = board2.select(&#039;A&#039;).X().toFixed(2);&lt;br /&gt;
    document.getElementById(&#039;print_b&#039;).value = board2.select(&#039;B&#039;).X().toFixed(2);&lt;br /&gt;
    document.getElementById(&#039;print_c&#039;).value = board2.select(&#039;C&#039;).X().toFixed(2);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
board2.addChild(board);&lt;br /&gt;
			&lt;br /&gt;
print_table_id = board2.on(&#039;update&#039;, print_table);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box2&amp;quot; class=&#039;jxgbox&#039; style=&amp;quot;width:375px; height:150px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border: 0px solid black; text-align: center&amp;quot; width=&amp;quot;500px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;a&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;b&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;c&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_a&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;A&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
  &amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_b&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;B&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
  &amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;print_c&amp;quot; size=&amp;quot;2&amp;quot; maxlength=&amp;quot;7&amp;quot; &lt;br /&gt;
    style=&amp;quot;border:none; text-align:right; font-size:1.2em; &amp;quot;&lt;br /&gt;
    onKeyUp=&amp;quot;board2.select(&#039;C&#039;).moveTo([parseFloat(this.value),0]); board2.update(); board.update();&amp;quot; onfocus=&amp;quot;hook=false;&amp;quot; onblur=&amp;quot;hook=true&amp;quot;&lt;br /&gt;
  &amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot; class=&amp;quot;jxgbox&amp;quot; style=&amp;quot;width:600px; height:400px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
hook = true;&lt;br /&gt;
board2 = JXG.JSXGraph.loadBoardFromString(&#039;box2&#039;, &#039;eNrtmm1v2zYQgD/bv4JAPteS7D...Y6tu7MXarPHfJ+R+tkHyx&#039;, &#039;Geonext&#039;);&lt;br /&gt;
&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 5, 7, -3], axis: true});&lt;br /&gt;
&lt;br /&gt;
var curve = board.create(&#039;functiongraph&#039;, [function(t){ &lt;br /&gt;
        return board2.select(&#039;A&#039;).X() * t * t + board2.select(&#039;B&#039;).X() * t + board2.select(&#039;C&#039;).X(); &lt;br /&gt;
    }, -10, 10]);						&lt;br /&gt;
			&lt;br /&gt;
function print_table() {&lt;br /&gt;
  if (hook){&lt;br /&gt;
    document.getElementById(&#039;print_a&#039;).value = board2.select(&#039;A&#039;).X().toFixed(2);&lt;br /&gt;
    document.getElementById(&#039;print_b&#039;).value = board2.select(&#039;B&#039;).X().toFixed(2);&lt;br /&gt;
    document.getElementById(&#039;print_c&#039;).value = board2.select(&#039;C&#039;).X().toFixed(2);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
board2.addChild(board);&lt;br /&gt;
			&lt;br /&gt;
print_table_id = board2.on(&#039;update&#039;, print_table);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GEONExT Construction used in this example===&lt;br /&gt;
&lt;br /&gt;
[[Media:Sliders.gxt|Sliders.gxt]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Old]]&lt;br /&gt;
[[Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Stomachion&amp;diff=7682</id>
		<title>Stomachion</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Stomachion&amp;diff=7682"/>
		<updated>2024-10-18T13:00:53Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;javascript:solveit()&amp;quot;&amp;gt;Click here to solve it&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;1100&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
        function solveit() {&lt;br /&gt;
            t=400;&lt;br /&gt;
            board.suspendUpdate();&lt;br /&gt;
            p11m.moveTo([33,18],t);&lt;br /&gt;
            p12m.moveTo([39,18],t);            &lt;br /&gt;
            p21m.moveTo([39,14],t);&lt;br /&gt;
            p22m.moveTo([39,12],t);&lt;br /&gt;
            p31m.moveTo([36,12],t);&lt;br /&gt;
            p32m.moveTo([39,12],t);&lt;br /&gt;
            p41m.moveTo([36,12],t);&lt;br /&gt;
            p42m.moveTo([39,6],t); &lt;br /&gt;
            p51m.moveTo([33,12],t);&lt;br /&gt;
            p52m.moveTo([33,18],t);&lt;br /&gt;
            p61.moveTo([33,12],t);&lt;br /&gt;
            p62.moveTo([33,6],t);&lt;br /&gt;
            p71.moveTo([33,6], t);&lt;br /&gt;
            p81.moveTo([30,6], t);&lt;br /&gt;
            p91.moveTo([30,6],t);&lt;br /&gt;
            p92.moveTo([30,12],t);&lt;br /&gt;
            p101.moveTo([27,6], t);&lt;br /&gt;
            p111.moveTo([27,6],t);&lt;br /&gt;
            p121.moveTo([27,18],t);&lt;br /&gt;
            p122.moveTo([27,6],t);&lt;br /&gt;
            p131m.moveTo([33,18],t);&lt;br /&gt;
            p132m.moveTo([33,12],t);&lt;br /&gt;
            p141.moveTo([33,18],t);&lt;br /&gt;
            p142.moveTo([27,18],t);&lt;br /&gt;
            board.unsuspendUpdate();&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
        JXG.Options.point.fillColor = &#039;#0000ff&#039;;&lt;br /&gt;
        JXG.Options.point.strokeColor = &#039;#0000ff&#039;;&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [0, 24, 44, 0]});&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
        var p1 = board.create(&#039;point&#039;,[27,6],{visible:false}); &lt;br /&gt;
        var p2 = board.create(&#039;point&#039;,[27,18],{visible:false});         &lt;br /&gt;
        var p3 = board.create(&#039;point&#039;,[39,18],{visible:false}); &lt;br /&gt;
        var p4 = board.create(&#039;point&#039;,[39,6],{visible:false});&lt;br /&gt;
        var f = board.create(&#039;polygon&#039;,[p1,p2,p3,p4],{fillcolor:&#039;none&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f.borders.length; i++) {&lt;br /&gt;
            f.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // First polygon (mirrored)&lt;br /&gt;
        var p11m = board.create(&#039;point&#039;,[7,17],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var c11m = board.create(&#039;circle&#039;,[p11m,6],{visible:false});&lt;br /&gt;
        var p12m = board.create(&#039;glider&#039;,[1,17,c11m],{face:&#039;plus&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var l11m = board.create(&#039;line&#039;,[p11m,p12m],{visible:false});        &lt;br /&gt;
        var l12m = board.create(&#039;normal&#039;,[l11m,p12m],{visible:false});&lt;br /&gt;
        var c12m = board.create(&#039;circle&#039;,[p12m,4],{visible:false});&lt;br /&gt;
        var p13m = board.create(&#039;intersection&#039;,[c12m,l12m,1],{face:&#039;cross&#039;,visible:false});        &lt;br /&gt;
        var c13m = board.create(&#039;circle&#039;,[p11m,3],{visible:false});&lt;br /&gt;
        var p14m = board.create(&#039;intersection&#039;,[c13m,l11m,0],{face:&#039;cross&#039;,visible:false});         &lt;br /&gt;
        var l13m = board.create(&#039;normal&#039;,[l11m,p14m],{visible:false});&lt;br /&gt;
        var c14m = board.create(&#039;circle&#039;,[p14m,6],{visible:false});&lt;br /&gt;
        var p15m = board.create(&#039;intersection&#039;,[c14m,l13m,1],{face:&#039;cross&#039;,visible:false}); &lt;br /&gt;
        var f1m = board.create(&#039;polygon&#039;,[p11m,p12m,p13m,p15m],{fillcolor:&#039;#00FF00&#039;,visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f1m.borders.length; i++) {&lt;br /&gt;
            f1m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }        &lt;br /&gt;
        &lt;br /&gt;
       &lt;br /&gt;
        // Second polygon (mirrored)&lt;br /&gt;
        var p21m = board.create(&#039;point&#039;,[10,20],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var c21m = board.create(&#039;circle&#039;,[p21m,2],{visible:false});&lt;br /&gt;
        var p22m = board.create(&#039;glider&#039;,[8,20,c21m],{face:&#039;plus&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var l21m = board.create(&#039;line&#039;,[p21m,p22m],{visible:false});&lt;br /&gt;
        var l22m = board.create(&#039;normal&#039;,[l21m,p22m],{visible:false});&lt;br /&gt;
        var c22m = board.create(&#039;circle&#039;,[p22m,3],{visible:false});&lt;br /&gt;
        var p23m = board.create(&#039;intersection&#039;,[c22m,l22m,1],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f2m = board.create(&#039;polygon&#039;,[p21m,p22m,p23m],{fillcolor:&#039;#99FF00&#039;,visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f2m.borders.length; i++) {&lt;br /&gt;
            f2m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }        &lt;br /&gt;
        &lt;br /&gt;
      &lt;br /&gt;
        // Third polygon (mirrored)&lt;br /&gt;
        var p31m = board.create(&#039;point&#039;,[14,17],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var c31m = board.create(&#039;circle&#039;,[p31m,3],{visible:false});&lt;br /&gt;
        var p32m = board.create(&#039;glider&#039;,[11,17,c31m],{face:&#039;plus&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var l31m = board.create(&#039;line&#039;,[p31m,p32m],{visible:false});&lt;br /&gt;
        var l32m = board.create(&#039;normal&#039;,[l31m,p32m],{visible:false});&lt;br /&gt;
        var c32m = board.create(&#039;circle&#039;,[p32m,6],{visible:false});&lt;br /&gt;
        var p33m = board.create(&#039;intersection&#039;,[c32m,l32m,1],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f3m = board.create(&#039;polygon&#039;,[p31m,p32m,p33m],{fillcolor:&#039;#99FF99&#039;,visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f3m.borders.length; i++) {&lt;br /&gt;
            f3m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }             &lt;br /&gt;
&lt;br /&gt;
        // Fourth polygon (mirrored)&lt;br /&gt;
        var p41m = board.create(&#039;point&#039;,[15,22],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;, withLabel:false, visible:true});&lt;br /&gt;
        var c41m = board.create(&#039;circle&#039;,[p41m,Math.sqrt(20)+Math.sqrt(5)],{visible:false});&lt;br /&gt;
        var p42m = board.create(&#039;glider&#039;,[21,19,c41m],{face:&#039;plus&#039;,withLabel:false, visible:true}); &lt;br /&gt;
        var c42m = board.create(&#039;circle&#039;,[p41m,Math.sqrt(5)],{visible:false});&lt;br /&gt;
        var c43m = board.create(&#039;circle&#039;,[p42m,Math.sqrt(32)],{visible:false});&lt;br /&gt;
        var p43m = board.create(&#039;intersection&#039;,[c42m,c43m,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f4m = board.create(&#039;polygon&#039;,[p41m,p42m,p43m],{fillcolor:&#039;#CCCC33&#039;, visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f4m.borders.length; i++) {&lt;br /&gt;
            f4m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }   &lt;br /&gt;
&lt;br /&gt;
        // Fifth polygon (mirrored)&lt;br /&gt;
        var p51m = board.create(&#039;point&#039;,[30,20],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false,visible:true});&lt;br /&gt;
        var c51m = board.create(&#039;circle&#039;,[p51m,6],{visible:false});&lt;br /&gt;
        var p52m = board.create(&#039;glider&#039;,[24,20,c51m],{face:&#039;plus&#039;,withLabel:false,visible:true});        &lt;br /&gt;
        var l51m = board.create(&#039;line&#039;,[p51m,p52m],{visible:false});   &lt;br /&gt;
        var l52m = board.create(&#039;normal&#039;,[l51m,p51m],{visible:false});&lt;br /&gt;
        var c52m = board.create(&#039;circle&#039;,[p51m,3],{visible:false});&lt;br /&gt;
        var p53m = board.create(&#039;intersection&#039;,[c52m,l52m,1],{face:&#039;cross&#039;,visible:false}); &lt;br /&gt;
        var c53m = board.create(&#039;circle&#039;,[p51m,2],{visible:false});&lt;br /&gt;
        var p54m = board.create(&#039;intersection&#039;,[c53m,l52m,1],{face:&#039;cross&#039;,visible:false}); &lt;br /&gt;
        var l53m = board.create(&#039;normal&#039;,[l52m,p54m],{visible:false});&lt;br /&gt;
        var c54m = board.create(&#039;circle&#039;,[p54m,2],{visible:false});&lt;br /&gt;
        var p55m = board.create(&#039;intersection&#039;,[c54m,l53m,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f5m = board.create(&#039;polygon&#039;,[p51m,p52m,p53m,p55m],{fillcolor:&#039;#FF00FF&#039;,visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f5m.borders.length; i++) {&lt;br /&gt;
            f5m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Sixth polygon&lt;br /&gt;
        var p61 = board.create(&#039;point&#039;,[1,14],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c61 = board.create(&#039;circle&#039;,[p61,6],{visible:false});&lt;br /&gt;
        var p62 = board.create(&#039;glider&#039;,[7,14,c61],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l61 = board.create(&#039;line&#039;,[p61,p62],{visible:false});&lt;br /&gt;
        var c62 = board.create(&#039;circle&#039;,[p61,2],{visible:false});&lt;br /&gt;
        var p63 = board.create(&#039;intersection&#039;,[l61,c62,0],{visible:false});  &lt;br /&gt;
        var l62 = board.create(&#039;normal&#039;,[l61,p63],{visible:false});&lt;br /&gt;
        var c63 = board.create(&#039;circle&#039;,[p63,2],{visible:false});&lt;br /&gt;
        var p64 = board.create(&#039;intersection&#039;,[c63,l62,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f6 = board.create(&#039;polygon&#039;,[p61,p62,p64],{fillcolor:&#039;#CC9966&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f6.borders.length; i++) {&lt;br /&gt;
            f6.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }    &lt;br /&gt;
        var m6 = false;    &lt;br /&gt;
        &lt;br /&gt;
        // Seventh polygon&lt;br /&gt;
        var p71 = board.create(&#039;point&#039;,[7,12],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c71 = board.create(&#039;circle&#039;,[p71,6],{visible:false});&lt;br /&gt;
        var p72 = board.create(&#039;glider&#039;,[13,12,c71],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l71 = board.create(&#039;line&#039;,[p71,p72],{visible:false});&lt;br /&gt;
        var c72 = board.create(&#039;circle&#039;,[p71,2],{visible:false});&lt;br /&gt;
        var p73 = board.create(&#039;intersection&#039;,[l71,c72,0],{visible:false});  &lt;br /&gt;
        var l72 = board.create(&#039;normal&#039;,[l71,p73],{visible:false});&lt;br /&gt;
        var c73 = board.create(&#039;circle&#039;,[p73,4],{visible:false});&lt;br /&gt;
        var p74 = board.create(&#039;intersection&#039;,[c73,l72,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f7 = board.create(&#039;polygon&#039;,[p71,p72,p74],{fillcolor:&#039;#996699&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f7.borders.length; i++) {&lt;br /&gt;
            f7.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        } &lt;br /&gt;
        &lt;br /&gt;
        // Eightth polygon&lt;br /&gt;
        var p81 = board.create(&#039;point&#039;,[1,5],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c81 = board.create(&#039;circle&#039;,[p81,3],{visible:false});        &lt;br /&gt;
        var p82 = board.create(&#039;glider&#039;,[4,5,c81],{face:&#039;plus&#039;,withLabel:false});&lt;br /&gt;
        var l81 = board.create(&#039;line&#039;,[p81,p82],{visible:false});&lt;br /&gt;
        var l82 = board.create(&#039;normal&#039;,[p81,l81],{visible:false});&lt;br /&gt;
        var l83 = board.create(&#039;normal&#039;,[p82,l81],{visible:false});&lt;br /&gt;
        var c82 = board.create(&#039;circle&#039;,[p81,6],{visible:false});&lt;br /&gt;
        var p83 = board.create(&#039;intersection&#039;,[l82,c82,0],{visible:false}); &lt;br /&gt;
        var c83 = board.create(&#039;circle&#039;,[p82,6],{visible:false});&lt;br /&gt;
        var p84 = board.create(&#039;intersection&#039;,[l83,c83,0],{visible:false}); &lt;br /&gt;
        var l84 = board.create(&#039;line&#039;,[p83,p84],{visible:false});&lt;br /&gt;
        var c84 = board.create(&#039;circle&#039;,[p83,1],{visible:false});&lt;br /&gt;
        var p85 = board.create(&#039;intersection&#039;,[l84,c84,0],{visible:false}); &lt;br /&gt;
        var l85 = board.create(&#039;normal&#039;,[p85,l84],{visible:false});&lt;br /&gt;
        var c85 = board.create(&#039;circle&#039;,[p85,2],{visible:false});&lt;br /&gt;
        var p86 = board.create(&#039;intersection&#039;,[l85,c85,0],{visible:false}); &lt;br /&gt;
        var f8 = board.create(&#039;polygon&#039;,[p81,p82,p84,p86,p83],{fillcolor:&#039;#00CCFF&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f8.borders.length; i++) {&lt;br /&gt;
            f8.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }    &lt;br /&gt;
&lt;br /&gt;
        // Nineth polygon&lt;br /&gt;
        var p91 = board.create(&#039;point&#039;,[31,20],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c91 = board.create(&#039;circle&#039;,[p91,6],{visible:false});&lt;br /&gt;
        var p92 = board.create(&#039;glider&#039;,[37,20,c91],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l91 = board.create(&#039;line&#039;,[p91,p92],{visible:false});&lt;br /&gt;
        var c92 = board.create(&#039;circle&#039;,[p91,4],{visible:false});&lt;br /&gt;
        var p93 = board.create(&#039;intersection&#039;,[l91,c92,0],{visible:false});  &lt;br /&gt;
        var l92 = board.create(&#039;normal&#039;,[l91,p93],{visible:false});&lt;br /&gt;
        var c93 = board.create(&#039;circle&#039;,[p93,1],{visible:false});&lt;br /&gt;
        var p94 = board.create(&#039;intersection&#039;,[c93,l92,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f9 = board.create(&#039;polygon&#039;,[p91,p92,p94],{fillcolor:&#039;#FFFF00&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f9.borders.length; i++) {&lt;br /&gt;
            f9.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        } &lt;br /&gt;
&lt;br /&gt;
        // Tenth polygon&lt;br /&gt;
        var p101 = board.create(&#039;point&#039;,[14,10],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c101 = board.create(&#039;circle&#039;,[p101,3],{visible:false});&lt;br /&gt;
        var p102 = board.create(&#039;glider&#039;,[17,10,c101],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l101 = board.create(&#039;line&#039;,[p101,p102],{visible:false});&lt;br /&gt;
        var c102 = board.create(&#039;circle&#039;,[p101,2],{visible:false});&lt;br /&gt;
        var p103 = board.create(&#039;intersection&#039;,[l101,c102,0],{visible:false});  &lt;br /&gt;
        var l102 = board.create(&#039;normal&#039;,[l101,p103],{visible:false});&lt;br /&gt;
        var c103 = board.create(&#039;circle&#039;,[p103,4],{visible:false});&lt;br /&gt;
        var p104 = board.create(&#039;intersection&#039;,[c103,l102,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f10 = board.create(&#039;polygon&#039;,[p101,p102,p104],{fillcolor:&#039;#FF3300&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f10.borders.length; i++) {&lt;br /&gt;
            f10.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        } &lt;br /&gt;
        &lt;br /&gt;
        // Eleventh polygon &lt;br /&gt;
        var p111 = board.create(&#039;point&#039;,[17,6],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c111 = board.create(&#039;circle&#039;,[p111,Math.sqrt(80)],{visible:false});&lt;br /&gt;
        var p112 = board.create(&#039;glider&#039;,[21,14,c111],{face:&#039;plus&#039;,withLabel:false});   &lt;br /&gt;
        var c112 = board.create(&#039;circle&#039;,[p112,Math.sqrt(8)],{visible:false});&lt;br /&gt;
        var c113 = board.create(&#039;circle&#039;,[p111,Math.sqrt(104)],{visible:false});&lt;br /&gt;
        var p113 = board.create(&#039;intersection&#039;,[c112,c113,0],{face:&#039;cross&#039;,visible:false}); &lt;br /&gt;
        var f11 = board.create(&#039;polygon&#039;,[p111,p112,p113],{fillcolor:&#039;#FFCC33&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f11.borders.length; i++) {&lt;br /&gt;
            f11.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        } &lt;br /&gt;
        &lt;br /&gt;
        // Twelveth polygon&lt;br /&gt;
        var p121 = board.create(&#039;point&#039;,[1,1],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c121 = board.create(&#039;circle&#039;,[p121,12],{visible:false});&lt;br /&gt;
        var p122 = board.create(&#039;glider&#039;,[13,1,c121],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l121 = board.create(&#039;line&#039;,[p121,p122],{visible:false});&lt;br /&gt;
        var c122 = board.create(&#039;circle&#039;,[p121,2],{visible:false});&lt;br /&gt;
        var p123 = board.create(&#039;intersection&#039;,[l121,c122,0],{visible:false});  &lt;br /&gt;
        var l122 = board.create(&#039;normal&#039;,[l121,p123],{visible:false});&lt;br /&gt;
        var c123 = board.create(&#039;circle&#039;,[p123,2],{visible:false});&lt;br /&gt;
        var p124 = board.create(&#039;intersection&#039;,[c123,l122,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f12 = board.create(&#039;polygon&#039;,[p121,p122,p124],{fillcolor:&#039;#FF9999&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f12.borders.length; i++) {&lt;br /&gt;
            f12.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        } &lt;br /&gt;
&lt;br /&gt;
        // Thirteenth polygon (mirrored)&lt;br /&gt;
        var p131m = board.create(&#039;point&#039;,[13,8],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false, visible:true});&lt;br /&gt;
        var c131m = board.create(&#039;circle&#039;,[p131m,6],{visible:false});&lt;br /&gt;
        var p132m = board.create(&#039;glider&#039;,[7,8,c131m],{face:&#039;plus&#039;,withLabel:false, visible:true});        &lt;br /&gt;
        var l131m = board.create(&#039;line&#039;,[p131m,p132m],{visible:false});&lt;br /&gt;
        var c132m = board.create(&#039;circle&#039;,[p131m,4],{visible:false});&lt;br /&gt;
        var p133m = board.create(&#039;intersection&#039;,[l131m,c132m,0],{visible:false});  &lt;br /&gt;
        var l132m = board.create(&#039;normal&#039;,[l131m,p133m],{visible:false});&lt;br /&gt;
        var c133m = board.create(&#039;circle&#039;,[p133m,2],{visible:false});&lt;br /&gt;
        var p134m = board.create(&#039;intersection&#039;,[c133m,l132m,1],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f13m = board.create(&#039;polygon&#039;,[p131m,p132m,p134m],{fillcolor:&#039;#0099CC&#039;, visible:true});&lt;br /&gt;
        for(i=0; i&amp;lt;f13m.borders.length; i++) {&lt;br /&gt;
            f13m.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }  &lt;br /&gt;
        &lt;br /&gt;
        // Fourteenth polygon&lt;br /&gt;
        var p141 = board.create(&#039;point&#039;,[14,1],{face:&#039;circle&#039;,fillColor:&#039;blue&#039;,withLabel:false});&lt;br /&gt;
        var c141 = board.create(&#039;circle&#039;,[p141,6],{visible:false});&lt;br /&gt;
        var p142 = board.create(&#039;glider&#039;,[20,1,c141],{face:&#039;plus&#039;,withLabel:false});        &lt;br /&gt;
        var l141 = board.create(&#039;line&#039;,[p141,p142],{visible:false});&lt;br /&gt;
        var c142 = board.create(&#039;circle&#039;,[p141,2],{visible:false});&lt;br /&gt;
        var p143 = board.create(&#039;intersection&#039;,[l141,c142,0],{visible:false});  &lt;br /&gt;
        var l142 = board.create(&#039;normal&#039;,[l141,p143],{visible:false});&lt;br /&gt;
        var c143 = board.create(&#039;circle&#039;,[p143,4],{visible:false});&lt;br /&gt;
        var p144 = board.create(&#039;intersection&#039;,[c143,l142,0],{face:&#039;cross&#039;,visible:false});&lt;br /&gt;
        var f14 = board.create(&#039;polygon&#039;,[p141,p142,p144],{fillcolor:&#039;#FFCCFF&#039;});&lt;br /&gt;
        for(i=0; i&amp;lt;f14.borders.length; i++) {&lt;br /&gt;
            f14.borders[i].setProperty(&#039;strokeColor:black&#039;);&lt;br /&gt;
        }   &lt;br /&gt;
        var m14 = false;       &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===External links===&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Ostomachion Ostomachion - Wikipedia entry]&lt;br /&gt;
* [http://mathworld.wolfram.com/Stomachion.html Stomachion at Wolfram MathWorld]&lt;br /&gt;
&lt;br /&gt;
[[Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Documentation&amp;diff=7681</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Documentation&amp;diff=7681"/>
		<updated>2024-10-18T13:00:06Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Howto include JSXGraph into web pages]]&lt;br /&gt;
* [[Displaying GEONExT constructions]]&lt;br /&gt;
* [[Displaying Intergeo constructions]]&lt;br /&gt;
* [[Use the MediaWiki extension for JSXGraph]]&lt;br /&gt;
* [[MediaWiki example]]&lt;br /&gt;
* [[Create your own constructions/visualizations using JavaScript]]&lt;br /&gt;
** [[Bounding box]]&lt;br /&gt;
** [[Point]]&lt;br /&gt;
** [[Line]]&lt;br /&gt;
** [[Circle]]&lt;br /&gt;
** [[Polygon]]&lt;br /&gt;
** [[Polygon II]]&lt;br /&gt;
** [[Function graph]]&lt;br /&gt;
** [[Curve]]&lt;br /&gt;
** [[Slider]]&lt;br /&gt;
** [[Slider and function plot]]&lt;br /&gt;
** [[Grouping objects]]&lt;br /&gt;
** [[Turtle]]&lt;br /&gt;
** [[Conic sections]]&lt;br /&gt;
** [[Ticks]]&lt;br /&gt;
** [[Images]]&lt;br /&gt;
** [[Animations]]&lt;br /&gt;
** [[Animation II]]&lt;br /&gt;
** [[Animation III]]&lt;br /&gt;
** [[Transformations]]&lt;br /&gt;
** [[Images and Transformations]]&lt;br /&gt;
** [[Texts and Transformations]]&lt;br /&gt;
** [[Texts and Transformations II]]&lt;br /&gt;
** [[Pie chart]]&lt;br /&gt;
** [[Pie chart II]]&lt;br /&gt;
** [[Tape measure]]&lt;br /&gt;
** [[Magnetized points]]&lt;br /&gt;
** [[Segments with fixed length]]&lt;br /&gt;
** [[Catmull-Rom splines]]&lt;br /&gt;
* [[Mathematical functions]]&lt;br /&gt;
* [[Options]]&lt;br /&gt;
* [[Browser test]]&lt;br /&gt;
* [[Euler line source code]]&lt;br /&gt;
* [[Step function]]&lt;br /&gt;
* [[Step function II]]&lt;br /&gt;
* [[Cardinal splines]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[How to comment the sourcecode for JsDoc-Toolkit]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Synchronous_file_load&amp;diff=7680</id>
		<title>Synchronous file load</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Synchronous_file_load&amp;diff=7680"/>
		<updated>2024-10-18T12:59:30Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;500&amp;quot; modules=&amp;quot;GeogebraReader&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;);&lt;br /&gt;
JXG.FileReader.parseFileContent(&#039;//jsxgraph.org/geonext/point.ggb&#039;, board, &#039;GeoGebra&#039;, false);&lt;br /&gt;
&lt;br /&gt;
board.create(&#039;point&#039;,[0,0],{fixed:true, name:&#039;jsxpoint1&#039;, size:1});&lt;br /&gt;
&lt;br /&gt;
var J = JXG.getReference(board, &amp;quot;jsxpoint1&amp;quot;);&lt;br /&gt;
var G = JXG.getReference(board, &amp;quot;geogebrapoint1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
J.setAttribute({size: 5});&lt;br /&gt;
G.setAttribute({size: 10});&lt;br /&gt;
&lt;br /&gt;
//board.setBoundingBox([-5, 5, 5, -5], true);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;);&lt;br /&gt;
JXG.FileReader.parseFileContent(&#039;//jsxgraph.org/geonext/point.ggb&#039;, board, &#039;GeoGebra&#039;, false);&lt;br /&gt;
&lt;br /&gt;
board.create(&#039;point&#039;,[0,0], {fixed:true, name:&#039;jsxpoint1&#039;, size:1});&lt;br /&gt;
&lt;br /&gt;
var J = JXG.getReference(board, &amp;quot;jsxpoint1&amp;quot;);&lt;br /&gt;
var G = JXG.getReference(board, &amp;quot;geogebrapoint1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
J.setAttribute({size: 5});&lt;br /&gt;
G.setAttribute({size: 10});&lt;br /&gt;
&lt;br /&gt;
board.setBoundingBox([-5, 5, 5, -5], true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Analyze_data_with_the_Statistics_software_R&amp;diff=7679</id>
		<title>Analyze data with the Statistics software R</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Analyze_data_with_the_Statistics_software_R&amp;diff=7679"/>
		<updated>2024-10-18T12:55:52Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Normal Location and Scale&amp;lt;/h1&amp;gt;&lt;br /&gt;
This litte application sends the y-coordinates of the points which are normal distributed (pseudo-)random numbers to the server.&amp;lt;br /&amp;gt; &lt;br /&gt;
There, location and scale of the sample are estimated using the [http://www.r-project.org Statistics software R].&amp;lt;br /&amp;gt;&lt;br /&gt;
The return values are plotted and displayed.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;The computed estimates are:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
* mean, standard deviation: red (non-robust!)&amp;lt;br /&amp;gt;&lt;br /&gt;
* median and MAD: black (most-robust!)&amp;lt;br /&amp;gt; &lt;br /&gt;
* radius-minimax estimator: green (optimally robust; cf. Rieder et al. (2008))&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
By changing the y-position of the four movable points you should recognize the instability (non-robustness) of mean and standard deviation in contrast to the robust estimates; e.g., move one of the four movable points to the top of the plot.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
===Online results:===&lt;br /&gt;
&amp;lt;html&amp;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;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;pre id=&#039;output&#039;&amp;gt;Statistics:&amp;lt;br&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;700&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
        brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-0.15, 60, 11.15, -20],axis:true});&lt;br /&gt;
        brd.suspendUpdate();&lt;br /&gt;
        var graph1,graph2,graph3,graph4,graph5,graph6,graph7,graph8,graph9;&lt;br /&gt;
&lt;br /&gt;
        var x = [];&lt;br /&gt;
        var y = [];&lt;br /&gt;
        var p = [];&lt;br /&gt;
        var r1,r2,rad,phi,z1,z2;&lt;br /&gt;
        for (var i=0;i&amp;lt;6;i++) {&lt;br /&gt;
            x[i] = i;&lt;br /&gt;
            // Box-Muller-Method for standard normal random numbers&lt;br /&gt;
            r1 = Math.random();&lt;br /&gt;
            r2 = Math.random();&lt;br /&gt;
            rad = Math.sqrt(-2*Math.log(1-r1));&lt;br /&gt;
            phi = 2*Math.PI*r2;&lt;br /&gt;
            z1 = rad*Math.cos(phi);&lt;br /&gt;
            z2 = rad*Math.sin(phi);&lt;br /&gt;
            if(i &amp;lt; 5){&lt;br /&gt;
                y[i] = 10+z1*3;&lt;br /&gt;
                y[6+i] = 10+z2*3;&lt;br /&gt;
                x[6+i] = 6+i;&lt;br /&gt;
                p[i] = brd.createElement(&#039;point&#039;, [x[i],y[i]],{name:&#039; &#039;,fixed:true,size:2,face:&#039;[]&#039;}); &lt;br /&gt;
                p[6+i] = brd.createElement(&#039;point&#039;, [x[6+i],y[6+i]],{name:&#039; &#039;,fixed:true,size:2,face:&#039;[]&#039;});&lt;br /&gt;
            }else{&lt;br /&gt;
                y[i] = 10+z1*3;&lt;br /&gt;
                p[i] = brd.createElement(&#039;point&#039;, [x[i],y[i]],{name:&#039; &#039;,fixed:true,size:2,face:&#039;[]&#039;}); &lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        var hlow = [];&lt;br /&gt;
        var hup = [];&lt;br /&gt;
        var l = [];&lt;br /&gt;
        hlow[0] = brd.createElement(&#039;point&#039;, [x[0],0],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hlow[1] = brd.createElement(&#039;point&#039;, [x[10],0],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hlow[2] = brd.createElement(&#039;point&#039;, [x[8],0],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hlow[3] = brd.createElement(&#039;point&#039;, [x[9],0],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hup[0] = brd.createElement(&#039;point&#039;, [x[0],20],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hup[1] = brd.createElement(&#039;point&#039;, [x[10],20],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hup[2] = brd.createElement(&#039;point&#039;, [x[8],20],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        hup[3] = brd.createElement(&#039;point&#039;, [x[9],20],{name:&#039; &#039;,visible:false}); &lt;br /&gt;
        l[0] = brd.createElement(&#039;line&#039;, [hlow[0],hup[0]],{visible:false}); &lt;br /&gt;
        l[1] = brd.createElement(&#039;line&#039;, [hlow[1],hup[1]],{visible:false}); &lt;br /&gt;
        l[2] = brd.createElement(&#039;line&#039;, [hlow[2],hup[2]],{visible:false}); &lt;br /&gt;
        l[3] = brd.createElement(&#039;line&#039;, [hlow[3],hup[3]],{visible:false}); &lt;br /&gt;
&lt;br /&gt;
        brd.removeObject(p[0]);&lt;br /&gt;
        brd.removeObject(p[10]);&lt;br /&gt;
        brd.removeObject(p[8]);&lt;br /&gt;
        brd.removeObject(p[9]);&lt;br /&gt;
        &lt;br /&gt;
        p[0] = brd.createElement(&#039;glider&#039;, [x[0],y[0],l[0]],{name:&#039; &#039;,size:4,face:&#039;o&#039;}); &lt;br /&gt;
        p[10] = brd.createElement(&#039;glider&#039;, [x[10],y[10],l[1]],{name:&#039; &#039;,size:4,face:&#039;o&#039;}); &lt;br /&gt;
        p[8] = brd.createElement(&#039;glider&#039;, [x[8],y[8],l[2]],{name:&#039; &#039;,size:4,face:&#039;o&#039;}); &lt;br /&gt;
        p[9] = brd.createElement(&#039;glider&#039;, [x[9],y[9],l[3]],{name:&#039; &#039;,size:4,face:&#039;o&#039;}); &lt;br /&gt;
        brd.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
        doIt();&lt;br /&gt;
        &lt;br /&gt;
        function doIt() {&lt;br /&gt;
            brd.update();&lt;br /&gt;
            // Generate a &amp;quot;;&amp;quot;-separated list&lt;br /&gt;
            var t = &#039;&#039;;&lt;br /&gt;
            for (var i=0;i&amp;lt;p.length;i++) {&lt;br /&gt;
                t += p[i].Y() + &#039;;&#039;;&lt;br /&gt;
            }&lt;br /&gt;
            new Ajax.Request(&#039;/~alfred/jsxgraph/examples/rserv.php&#039;, {&lt;br /&gt;
                method:&#039;post&#039;,&lt;br /&gt;
                parameters:&#039;input=&#039;+escape(t),&lt;br /&gt;
                onComplete: function(transport) {&lt;br /&gt;
                    if (200 == transport.status) {&lt;br /&gt;
                        var t = transport.responseText;&lt;br /&gt;
                        var res = t.match(/&amp;quot;(.*)&amp;quot;/gi);&lt;br /&gt;
                        res = RegExp.$1;&lt;br /&gt;
                        var a = res.split(&amp;quot;;&amp;quot;);&lt;br /&gt;
                        var m = a[0]*1.0;&lt;br /&gt;
                        var sd = a[1]*1.0;&lt;br /&gt;
                        var med = a[2]*1.0;&lt;br /&gt;
                        var mad = a[3]*1.0;&lt;br /&gt;
                        var est1 = a[4]*1.0;&lt;br /&gt;
                        var est2 = a[5]*1.0;&lt;br /&gt;
&lt;br /&gt;
                        if (!graph2) { &lt;br /&gt;
                            graph2 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[m,m]], {strokecolor:&#039;red&#039;}); &lt;br /&gt;
                            graph3 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[m+sd,m+sd]], {strokecolor:&#039;red&#039;,dash:2}); &lt;br /&gt;
                            graph4 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[m-sd,m-sd]], {strokecolor:&#039;red&#039;,dash:2}); &lt;br /&gt;
                            graph5 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[med,med]], {strokecolor:&#039;black&#039;}); &lt;br /&gt;
                            graph1 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[med-mad,med-mad]], {strokecolor:&#039;black&#039;,dash:3}); &lt;br /&gt;
                            graph6 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[med+mad,med+mad]], {strokecolor:&#039;black&#039;,dash:3}); &lt;br /&gt;
                            graph8 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[est1,est1]], {strokecolor:&#039;green&#039;}); &lt;br /&gt;
                            graph7 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[est1-est2,est1-est2]], {strokecolor:&#039;green&#039;,dash:4}); &lt;br /&gt;
                            graph9 = brd.createElement(&#039;curve&#039;, [[x[0],x[x.length-1]],[est1+est2,est1+est2]], {strokecolor:&#039;green&#039;,dash:4}); &lt;br /&gt;
                        } else {&lt;br /&gt;
                            graph2.dataY = [m,m];&lt;br /&gt;
                            graph3.dataY = [m+sd,m+sd];&lt;br /&gt;
                            graph4.dataY = [m-sd,m-sd];&lt;br /&gt;
                            graph5.dataY = [med,med];&lt;br /&gt;
                            graph1.dataY = [med-mad,med-mad];&lt;br /&gt;
                            graph6.dataY = [med+mad,med+mad];&lt;br /&gt;
                            graph8.dataY = [est1,est1];&lt;br /&gt;
                            graph7.dataY = [est1-est2,est1-est2];&lt;br /&gt;
                            graph9.dataY = [est1+est2,est1+est2];&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        document.getElementById(&#039;output&#039;).innerHTML = &#039;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;+1&amp;quot;&amp;gt;Normal location and scale:&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;+ &lt;br /&gt;
                                &#039;&amp;lt;b&amp;gt;Estimates for location (true value = 10):&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;Mean = &#039; + Math.round(m,2) + &#039;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;Median = &#039; + Math.round(med,2) + &#039;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;Radius-minimax estimator = &#039; + Math.round(est1,2) + &#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;&amp;lt;b&amp;gt;Estimates for scale (true value = 3):&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;Standard deviation = &#039; + Math.round(sd,2) + &#039;&amp;lt;br /&amp;gt;&#039; +&lt;br /&gt;
                                &#039;MAD = &#039; + Math.round(mad,2) + &#039;&amp;lt;br /&amp;gt;&#039; + &lt;br /&gt;
                                &#039;Radius-minimax estimator = &#039; + Math.round(est2,2) + &#039;&amp;lt;br /&amp;gt;&#039;;&lt;br /&gt;
                        brd.update();&lt;br /&gt;
                    };&lt;br /&gt;
                }});&lt;br /&gt;
        }&lt;br /&gt;
brd.addHook(doIt, &#039;mouseup&#039;);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The underlying source code ===&lt;br /&gt;
[[The underlying JavaScript and PHP code]]&lt;br /&gt;
&lt;br /&gt;
The R script can be [http://jsxgraph.uni-bayreuth.de/~alfred/jsxgraph/branches/0.70/examples/LokSkala.R downloaded here].&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* &#039;&#039;The Costs of not Knowing the Radius&#039;&#039;, Helmut Rieder, Matthias Kohl and Peter Ruckdeschel, Statistical Methods and Application 2008 Feb; 17(1): p.13-40; cf. also [http://www.stamats.de/RRlong.pdf] for an extended version.&lt;br /&gt;
* &#039;&#039;Robust Asymptotic Statistics&#039;&#039;, Helmut Rieder, Springer, 1994.&lt;br /&gt;
* &#039;&#039;Numerical Contributions to the Asymptotic Theory of Robustness&#039;&#039;, Matthias Kohl, PhD-Thesis, University of Bayreuth, 2005; cf. also [http://www.stamats.de/ThesisMKohl.pdf].&lt;br /&gt;
&lt;br /&gt;
=== External links ===&lt;br /&gt;
* [http://www.r-project.org The R Project for statistical computing.]&lt;br /&gt;
* [https://r-forge.r-project.org/projects/robast/ RobASt project on R-Forge]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Robust_statistics Wikipedia on Robust Statistics]&lt;br /&gt;
&lt;br /&gt;
[[Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Main_Page&amp;diff=7678</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Main_Page&amp;diff=7678"/>
		<updated>2024-10-18T12:55:16Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== JSXGraph Wiki ==&lt;br /&gt;
Welcome to the JSXGraph Wiki. This Wiki provides information and examples about the use of JSXGraph. &lt;br /&gt;
* [[Documentation| First steps]]&lt;br /&gt;
* [[Showcases]]&lt;br /&gt;
* [[Advanced constructions]]&lt;br /&gt;
* [[FAQ - Frequently asked questions]]&lt;br /&gt;
* [[Contributions]]&lt;br /&gt;
* [[Bringing JavaScript to its edge]]&lt;br /&gt;
* [[More examples]]&lt;br /&gt;
&lt;br /&gt;
Categories:&lt;br /&gt;
* [[:Category:Examples]] contains a list of &#039;&#039;&#039;all&#039;&#039;&#039; examples&lt;br /&gt;
* [[:Category:Geometry]] contains &#039;&#039;geometry&#039;&#039; examples&lt;br /&gt;
* [[:Category:Calculus]] contains &#039;&#039;calculus&#039;&#039; examples&lt;br /&gt;
* [[:Category:Curves]] contains &#039;&#039;curves&#039;&#039; examples&lt;br /&gt;
* [[:Category:Text]] Examples featuring the &#039;&#039;text&#039;&#039; element&lt;br /&gt;
* [[:Category:Turtle Graphics]]&lt;br /&gt;
* [[:Category:Fractals]]&lt;br /&gt;
To learn more about creating constructions with JSXGraph from the scratch visit the the examples category: [[:Category:Examples]]&lt;br /&gt;
&lt;br /&gt;
[http://jsxgraph.org Homepage of the JSXGraph project]&lt;br /&gt;
&lt;br /&gt;
== Message to all contributors ==&lt;br /&gt;
The JSXGraph team appreciates your valuable contributions to the JSXGraph wiki!&lt;br /&gt;
&lt;br /&gt;
But due to security reasons we had to enforce email based registration. Now, all users have to confirm their email address once. If you have not done so, please press &amp;quot;Confirm email&amp;quot; in [[Special:Preferences]]. Additionally to create new and edit existing wiki pages, please contact us at [mailto:info@jsxgraph.org info@jsxgraph.org].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Development links ==&lt;br /&gt;
&lt;br /&gt;
* [http://jsxgraph.org Homepage]&lt;br /&gt;
* [https://github.com/jsxgraph/jsxgraph GitHub project], [https://sourceforge.net/projects/jsxgraph/ SF project]&lt;br /&gt;
* Browse [https://github.com/jsxgraph/jsxgraph our repository]&lt;br /&gt;
* [https://github.com/jsxgraph/jsxgraph/issues Issue tracker]&lt;br /&gt;
* [https://groups.google.com/forum/#!forum/jsxgraph Discussion group]&lt;br /&gt;
* [[Quick start on Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
== Obsolete examples ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Locus_computation&amp;diff=7677</id>
		<title>Locus computation</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Locus_computation&amp;diff=7677"/>
		<updated>2024-10-18T12:53:42Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
JXG.serverBase = &#039;https://jsxgraph.org/distrib/server/&#039;;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-2, 20, 20, -2], axis: true, grid: false, keepaspectratio: true});&lt;br /&gt;
    p3 = board.create(&#039;point&#039;, [8, 3]);&lt;br /&gt;
    p4 = board.create(&#039;point&#039;, [8, 8]);&lt;br /&gt;
    c1 = board.create(&#039;circle&#039;, [p4, 4]);&lt;br /&gt;
&lt;br /&gt;
    p6 = board.create(&#039;glider&#039;, [0, 0, c1], {name:&amp;quot;D&amp;quot;});&lt;br /&gt;
    g = board.create(&#039;line&#039;, [p3, p6]);&lt;br /&gt;
&lt;br /&gt;
    c2 = board.create(&#039;circle&#039;, [p6, 3]);&lt;br /&gt;
&lt;br /&gt;
    p14_1 = board.create(&#039;intersection&#039;, [c2,g,0], {name: &amp;quot;T&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
    loc = board.create(&#039;locus&#039;, [p14_1], {strokeColor: &#039;red&#039;, strokeWidth: 1});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.serverBase = &#039;https://jsxgraph.org/distrib/server/&#039;;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-2, 20, 20, -2], axis: true, grid: false, keepaspectratio: true});&lt;br /&gt;
p3 = board.create(&#039;point&#039;, [8, 3]);&lt;br /&gt;
p4 = board.create(&#039;point&#039;, [8, 8]);&lt;br /&gt;
c1 = board.create(&#039;circle&#039;, [p4, 4]);&lt;br /&gt;
p6 = board.create(&#039;glider&#039;, [0, 0, c1], {name:&amp;quot;D&amp;quot;});&lt;br /&gt;
g = board.create(&#039;line&#039;, [p3, p6]);&lt;br /&gt;
c2 = board.create(&#039;circle&#039;, [p6, 3]);&lt;br /&gt;
tracer = board.create(&#039;intersection&#039;, [c2,g,0], {name: &amp;quot;T&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
loc = board.create(&#039;locus&#039;, [tracer], {strokeColor: &#039;red&#039;, strokeWidth: 1});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Old]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7676</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7676"/>
		<updated>2024-09-16T06:04:10Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;/distrib/images/uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
Here is the complete code to accomplish this behaviour.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;/distrib/images/uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7675</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7675"/>
		<updated>2024-09-16T06:03:53Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;/distrib/images/uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
Here is the complete code to accomplish this behaviour.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;./uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7674</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7674"/>
		<updated>2024-09-16T06:03:31Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;/distrib/uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
Here is the complete code to accomplish this behaviour.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;./uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7673</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7673"/>
		<updated>2024-09-16T06:02:36Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;./uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
Here is the complete code to accomplish this behaviour.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;./uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7672</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7672"/>
		<updated>2024-09-16T06:02:02Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: Undo revision 7671 by A WASSERMANN (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
  var brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,5,13,-2.5], grid:true});&lt;br /&gt;
  var p0, p1, p2, p3, p5,&lt;br /&gt;
      l1, l2,&lt;br /&gt;
      im1, im2, im3, &lt;br /&gt;
      t1, t2,&lt;br /&gt;
      imurl = &amp;quot;/distrib/images/uccellino.jpg&amp;quot;,&lt;br /&gt;
      X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
  // Define two line through four points&lt;br /&gt;
  p0 = brd.create(&#039;point&#039;, [2,-2]); &lt;br /&gt;
  p1 = brd.create(&#039;point&#039;, [2,1]); &lt;br /&gt;
  p2 = brd.create(&#039;point&#039;, [10,-1]); &lt;br /&gt;
&lt;br /&gt;
  l1 = brd.create(&#039;line&#039;, [p0, p1]); &lt;br /&gt;
  l2 = brd.create(&#039;line&#039;, [p1, p2]); &lt;br /&gt;
&lt;br /&gt;
  p4 = brd.create(&#039;point&#039;, [-2,-2]); &lt;br /&gt;
  p5 = brd.create(&#039;point&#039;, [1,0]); &lt;br /&gt;
&lt;br /&gt;
  X = function(){ return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
  Y = function(){ return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
  W = function(){ return Math.abs(p5.X() -p4.X()); };&lt;br /&gt;
  H = function(){ return Math.abs(p5.Y() -p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
  im1 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
  im2 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
  im3 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
&lt;br /&gt;
  t1 = brd.create(&#039;transform&#039;, [l1], {type:&#039;reflect&#039;});&lt;br /&gt;
  t2 = brd.create(&#039;transform&#039;, [l2], {type:&#039;reflect&#039;});&lt;br /&gt;
&lt;br /&gt;
  // Reflect im2 on l1&lt;br /&gt;
  t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
  // Reflect im3 on l1 and on l2&lt;br /&gt;
  t1.bindTo(im3);&lt;br /&gt;
  t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
  brd.update();&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
Here is the complete code to accomplish this behaviour.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
  var brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,5,13,-2.5], grid:true});&lt;br /&gt;
  var p0, p1, p2, p3, p5,&lt;br /&gt;
      l1, l2,&lt;br /&gt;
      im1, im2, im3, &lt;br /&gt;
      t1, t2,&lt;br /&gt;
      imurl = &amp;quot;/distrib/images/uccellino.jpg&amp;quot;,&lt;br /&gt;
      X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
  // Define two line through four points&lt;br /&gt;
  p0 = brd.create(&#039;point&#039;, [2,-2]); &lt;br /&gt;
  p1 = brd.create(&#039;point&#039;, [2,1]); &lt;br /&gt;
  p2 = brd.create(&#039;point&#039;, [10,-1]); &lt;br /&gt;
&lt;br /&gt;
  l1 = brd.create(&#039;line&#039;, [p0, p1]); &lt;br /&gt;
  l2 = brd.create(&#039;line&#039;, [p1, p2]); &lt;br /&gt;
&lt;br /&gt;
  p4 = brd.create(&#039;point&#039;, [-2,-2]); &lt;br /&gt;
  p5 = brd.create(&#039;point&#039;, [1,0]); &lt;br /&gt;
&lt;br /&gt;
  X = function(){ return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
  Y = function(){ return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
  W = function(){ return Math.abs(p5.X() -p4.X()); };&lt;br /&gt;
  H = function(){ return Math.abs(p5.Y() -p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
  im1 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
  im2 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
  im3 = brd.create(&#039;image&#039;,[imurl, [X, Y], [W, H]], {opacity:0.7}); &lt;br /&gt;
&lt;br /&gt;
  t1 = brd.create(&#039;transform&#039;, [l1], {type:&#039;reflect&#039;});&lt;br /&gt;
  t2 = brd.create(&#039;transform&#039;, [l2], {type:&#039;reflect&#039;});&lt;br /&gt;
&lt;br /&gt;
  // Reflect im2 on l1&lt;br /&gt;
  t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
  // Reflect im3 on l1 and on l2&lt;br /&gt;
  t1.bindTo(im3);&lt;br /&gt;
  t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
  brd.update();&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7671</id>
		<title>Reflect images</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Reflect_images&amp;diff=7671"/>
		<updated>2024-09-16T06:01:01Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
(function(){&lt;br /&gt;
        var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
            boundingbox: [-5, 5, 13, -2.5],&lt;br /&gt;
            grid: true&lt;br /&gt;
        });&lt;br /&gt;
        var p0, p1, p2, p3, p4, p5,&lt;br /&gt;
            l1, l2,&lt;br /&gt;
            im1, im2, im3,&lt;br /&gt;
            t1, t2,&lt;br /&gt;
            imurl = &amp;quot;./uccellino.jpg&amp;quot;,&lt;br /&gt;
            X, Y, W, H;          // Functions defining the position, width and height of the original image.&lt;br /&gt;
&lt;br /&gt;
        // Define two line through four points&lt;br /&gt;
        p0 = board.create(&#039;point&#039;, [2, -2]);&lt;br /&gt;
        p1 = board.create(&#039;point&#039;, [2, 1]);&lt;br /&gt;
        p2 = board.create(&#039;point&#039;, [10, -1]);&lt;br /&gt;
&lt;br /&gt;
        l1 = board.create(&#039;line&#039;, [p0, p1]);&lt;br /&gt;
        l2 = board.create(&#039;line&#039;, [p1, p2]);&lt;br /&gt;
&lt;br /&gt;
        p4 = board.create(&#039;point&#039;, [-2, -2]);&lt;br /&gt;
        p5 = board.create(&#039;point&#039;, [1, 0]);&lt;br /&gt;
&lt;br /&gt;
        X = function () { return Math.min(p4.X(), p5.X()); };&lt;br /&gt;
        Y = function () { return Math.min(p4.Y(), p5.Y()); };&lt;br /&gt;
        W = function () { return Math.abs(p5.X() - p4.X()); };&lt;br /&gt;
        H = function () { return Math.abs(p5.Y() - p4.Y()); };&lt;br /&gt;
&lt;br /&gt;
        im1 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im2 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
        im3 = board.create(&#039;image&#039;, [imurl, [X, Y], [W, H]], { opacity: 0.7 });&lt;br /&gt;
&lt;br /&gt;
        t1 = board.create(&#039;transform&#039;, [l1], { type: &#039;reflect&#039; });&lt;br /&gt;
        t2 = board.create(&#039;transform&#039;, [l2], { type: &#039;reflect&#039; });&lt;br /&gt;
&lt;br /&gt;
        // Reflect im2 on l1&lt;br /&gt;
        t1.bindTo(im2);&lt;br /&gt;
&lt;br /&gt;
        // Reflect im3 on l1 and on l2&lt;br /&gt;
        t1.bindTo(im3);&lt;br /&gt;
        t2.bindTo(im3);&lt;br /&gt;
&lt;br /&gt;
        board.update();&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Geometry]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Riemann_sums&amp;diff=7665</id>
		<title>Riemann sums</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Riemann_sums&amp;diff=7665"/>
		<updated>2024-03-07T13:50:14Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://korpelainen.net/js/AM1.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;Riemann sum type: &amp;lt;select id=&amp;quot;sumtype&amp;quot; onChange=&amp;quot;brd.update();&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&#039;left&#039; selected&amp;gt; left&lt;br /&gt;
&amp;lt;option value=&#039;right&#039;&amp;gt; right&lt;br /&gt;
&amp;lt;option value=&#039;middle&#039;&amp;gt; middle&lt;br /&gt;
&amp;lt;option value=&#039;trapezoidal&#039;&amp;gt; trapezoidal&lt;br /&gt;
&amp;lt;option value=&#039;simpson&#039;&amp;gt; simpson&lt;br /&gt;
&amp;lt;option value=&#039;lower&#039;&amp;gt; lower&lt;br /&gt;
&amp;lt;option value=&#039;upper&#039;&amp;gt; upper&lt;br /&gt;
&amp;lt;/select&amp;gt;&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;800&amp;quot; height=&amp;quot;400&amp;quot; box=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
var brd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true, boundingbox: [-8, 4, 8, -4]});&lt;br /&gt;
var s = brd.create(&#039;slider&#039;,[[1,3],[5,3],[1,10,50]],{name:&#039;n&#039;,snapWidth:1});&lt;br /&gt;
var a = brd.create(&#039;slider&#039;,[[1,2],[5,2],[-10,-3,0]],{name:&#039;start&#039;});&lt;br /&gt;
var b = brd.create(&#039;slider&#039;,[[1,1],[5,1],[0,Math.PI,10]],{name:&#039;end&#039;});&lt;br /&gt;
var f = function(x){ return Math.sin(x); };&lt;br /&gt;
var plot = brd.create(&#039;functiongraph&#039;,[f,function(){return a.Value();}, function(){return b.Value();}]);&lt;br /&gt;
&lt;br /&gt;
var os = brd.create(&#039;riemannsum&#039;,[f, &lt;br /&gt;
    function(){ return s.Value();}, function(){ return document.getElementById(&#039;sumtype&#039;).value;},&lt;br /&gt;
    function(){return a.Value();}, &lt;br /&gt;
    function(){return b.Value();}&lt;br /&gt;
    ], &lt;br /&gt;
    {fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&lt;br /&gt;
brd.create(&#039;text&#039;,[-6,-3,function(){ return &#039;Sum=&#039;+(JXG.Math.Numerics.riemannsum(f,s.Value(),document.getElementById(&#039;sumtype&#039;).value,a.Value(),b.Value())).toFixed(4); }]);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true, boundingbox: [-8, 4, 8, -4]});&lt;br /&gt;
var s = brd.create(&#039;slider&#039;,[[1,3],[5,3],[1,10,50]],{name:&#039;n&#039;,snapWidth:1});&lt;br /&gt;
var a = brd.create(&#039;slider&#039;,[[1,2],[5,2],[-10,-3,0]],{name:&#039;start&#039;});&lt;br /&gt;
var b = brd.create(&#039;slider&#039;,[[1,1],[5,1],[0,Math.PI,10]],{name:&#039;end&#039;});&lt;br /&gt;
var f = function(x){ return Math.sin(x); };&lt;br /&gt;
var plot = brd.create(&#039;functiongraph&#039;,[f,function(){return a.Value();}, function(){return b.Value();}]);&lt;br /&gt;
&lt;br /&gt;
var os = brd.create(&#039;riemannsum&#039;,[f, &lt;br /&gt;
    function(){ return s.Value();}, function(){ return document.getElementById(&#039;sumtype&#039;).value;},&lt;br /&gt;
    function(){return a.Value();}, &lt;br /&gt;
    function(){return b.Value();}&lt;br /&gt;
    ], &lt;br /&gt;
    {fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&lt;br /&gt;
brd.create(&#039;text&#039;,[-6,-3,function(){ return &#039;Sum=&#039;+(JXG.Math.Numerics.riemannsum(f,s.Value(),document.getElementById(&#039;sumtype&#039;).value,a.Value(),b.Value())).toFixed(4); }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Riemann_sums&amp;diff=7664</id>
		<title>Riemann sums</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Riemann_sums&amp;diff=7664"/>
		<updated>2024-03-07T13:49:51Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://korpelainen.net/js/AM1.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;Riemann sum type: &amp;lt;select id=&amp;quot;sumtype&amp;quot; onChange=&amp;quot;board.update();&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&#039;left&#039; selected&amp;gt; left&lt;br /&gt;
&amp;lt;option value=&#039;right&#039;&amp;gt; right&lt;br /&gt;
&amp;lt;option value=&#039;middle&#039;&amp;gt; middle&lt;br /&gt;
&amp;lt;option value=&#039;trapezoidal&#039;&amp;gt; trapezoidal&lt;br /&gt;
&amp;lt;option value=&#039;simpson&#039;&amp;gt; simpson&lt;br /&gt;
&amp;lt;option value=&#039;lower&#039;&amp;gt; lower&lt;br /&gt;
&amp;lt;option value=&#039;upper&#039;&amp;gt; upper&lt;br /&gt;
&amp;lt;/select&amp;gt;&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;800&amp;quot; height=&amp;quot;400&amp;quot; box=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
var brd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true, boundingbox: [-8, 4, 8, -4]});&lt;br /&gt;
var s = brd.create(&#039;slider&#039;,[[1,3],[5,3],[1,10,50]],{name:&#039;n&#039;,snapWidth:1});&lt;br /&gt;
var a = brd.create(&#039;slider&#039;,[[1,2],[5,2],[-10,-3,0]],{name:&#039;start&#039;});&lt;br /&gt;
var b = brd.create(&#039;slider&#039;,[[1,1],[5,1],[0,Math.PI,10]],{name:&#039;end&#039;});&lt;br /&gt;
var f = function(x){ return Math.sin(x); };&lt;br /&gt;
var plot = brd.create(&#039;functiongraph&#039;,[f,function(){return a.Value();}, function(){return b.Value();}]);&lt;br /&gt;
&lt;br /&gt;
var os = brd.create(&#039;riemannsum&#039;,[f, &lt;br /&gt;
    function(){ return s.Value();}, function(){ return document.getElementById(&#039;sumtype&#039;).value;},&lt;br /&gt;
    function(){return a.Value();}, &lt;br /&gt;
    function(){return b.Value();}&lt;br /&gt;
    ], &lt;br /&gt;
    {fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&lt;br /&gt;
brd.create(&#039;text&#039;,[-6,-3,function(){ return &#039;Sum=&#039;+(JXG.Math.Numerics.riemannsum(f,s.Value(),document.getElementById(&#039;sumtype&#039;).value,a.Value(),b.Value())).toFixed(4); }]);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd = JXG.JSXGraph.initBoard(&#039;box&#039;, {axis:true, boundingbox: [-8, 4, 8, -4]});&lt;br /&gt;
var s = brd.create(&#039;slider&#039;,[[1,3],[5,3],[1,10,50]],{name:&#039;n&#039;,snapWidth:1});&lt;br /&gt;
var a = brd.create(&#039;slider&#039;,[[1,2],[5,2],[-10,-3,0]],{name:&#039;start&#039;});&lt;br /&gt;
var b = brd.create(&#039;slider&#039;,[[1,1],[5,1],[0,Math.PI,10]],{name:&#039;end&#039;});&lt;br /&gt;
var f = function(x){ return Math.sin(x); };&lt;br /&gt;
var plot = brd.create(&#039;functiongraph&#039;,[f,function(){return a.Value();}, function(){return b.Value();}]);&lt;br /&gt;
&lt;br /&gt;
var os = brd.create(&#039;riemannsum&#039;,[f, &lt;br /&gt;
    function(){ return s.Value();}, function(){ return document.getElementById(&#039;sumtype&#039;).value;},&lt;br /&gt;
    function(){return a.Value();}, &lt;br /&gt;
    function(){return b.Value();}&lt;br /&gt;
    ], &lt;br /&gt;
    {fillColor:&#039;#ffff00&#039;, fillOpacity:0.3});&lt;br /&gt;
&lt;br /&gt;
brd.create(&#039;text&#039;,[-6,-3,function(){ return &#039;Sum=&#039;+(JXG.Math.Numerics.riemannsum(f,s.Value(),document.getElementById(&#039;sumtype&#039;).value,a.Value(),b.Value())).toFixed(4); }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7663</id>
		<title>Function graph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7663"/>
		<updated>2024-01-25T15:51:19Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A minimal example how to embed JSXGraph in a web site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-5, 2, 5, -2], axis: true});&lt;br /&gt;
var fun = board.create(&#039;functiongraph&#039;, [&#039;sin(x)&#039;]);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!doctype html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSXGraph template&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta content=&amp;quot;text/html; charset=utf-8&amp;quot; http-equiv=&amp;quot;Content-Type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraph.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraphcore.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- The next line is optional: load MathJax --&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot; async&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&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;
&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {&lt;br /&gt;
        boundingbox: [-5, 2, 5, -2], axis: true});&lt;br /&gt;
    var fun = board.create(&#039;functiongraph&#039;, [&#039;sin(x)&#039;]);&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7662</id>
		<title>Function graph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7662"/>
		<updated>2024-01-25T15:49:35Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A minimal example how to embed JSXGraph in a web site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-5, 2, 5, -2]});&lt;br /&gt;
var fun = board.create(&#039;functiongraph&#039;, [&#039;sin(x)&#039;]);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The JavaScript code===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!doctype html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSXGraph template&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta content=&amp;quot;text/html; charset=utf-8&amp;quot; http-equiv=&amp;quot;Content-Type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraph.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdn.jsdelivr.net/npm/jsxgraph/distrib/jsxgraphcore.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- The next line is optional: load MathJax --&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot; async&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&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;
&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-5, 2, 5, -2]});&lt;br /&gt;
    var fun = board.create(&#039;functiongraph&#039;, [&#039;sin(x)&#039;]);&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7661</id>
		<title>Function graph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Function_graph&amp;diff=7661"/>
		<updated>2024-01-25T15:47:59Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: Created page with &amp;quot;&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt; var board = JXG.JSXGraph.initBoard(&amp;#039;jxgbox&amp;#039;, {boundingbox: [-5, 2, 5, -2]}); var fun = board.create(&amp;#039;functiongraph&amp;#039;, [&amp;#039;sin(x)&amp;#039;]); &amp;lt;/jsxgraph&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph width=&amp;quot;500&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
var board = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox: [-5, 2, 5, -2]});&lt;br /&gt;
var fun = board.create(&#039;functiongraph&#039;, [&#039;sin(x)&#039;]);&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Documentation&amp;diff=7660</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Documentation&amp;diff=7660"/>
		<updated>2024-01-25T15:46:29Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Howto include JSXGraph into web pages]]&lt;br /&gt;
* [[Displaying GEONExT constructions]]&lt;br /&gt;
* [[Displaying Intergeo constructions]]&lt;br /&gt;
* [[Use the MediaWiki extension for JSXGraph]]&lt;br /&gt;
* [[MediaWiki example]]&lt;br /&gt;
* [[Create your own constructions/visualizations using JavaScript]]&lt;br /&gt;
** [[Bounding box]]&lt;br /&gt;
** [[Point]]&lt;br /&gt;
** [[Line]]&lt;br /&gt;
** [[Circle]]&lt;br /&gt;
** [[Polygon]]&lt;br /&gt;
** [[Polygon II]]&lt;br /&gt;
** [[Function graph]]&lt;br /&gt;
** [[Curve]]&lt;br /&gt;
** [[Slider]]&lt;br /&gt;
** [[Slider and function plot]]&lt;br /&gt;
** [[Grouping objects]]&lt;br /&gt;
** [[Turtle]]&lt;br /&gt;
** [[Conic sections]]&lt;br /&gt;
** [[Ticks]]&lt;br /&gt;
** [[Images]]&lt;br /&gt;
** [[Animations]]&lt;br /&gt;
** [[Animation II]]&lt;br /&gt;
** [[Animation III]]&lt;br /&gt;
** [[Transformations]]&lt;br /&gt;
** [[Images and Transformations]]&lt;br /&gt;
** [[Texts and Transformations]]&lt;br /&gt;
** [[Texts and Transformations II]]&lt;br /&gt;
** [[Pie chart]]&lt;br /&gt;
** [[Pie chart II]]&lt;br /&gt;
** [[Tape measure]]&lt;br /&gt;
* New in 0.93&lt;br /&gt;
** [[Magnetized points]]&lt;br /&gt;
** [[Segments with fixed length]]&lt;br /&gt;
** [[Catmull-Rom splines]]&lt;br /&gt;
* [[Mathematical functions]]&lt;br /&gt;
* [[Options]]&lt;br /&gt;
* [[Browser test]]&lt;br /&gt;
* [[Euler line source code]]&lt;br /&gt;
* [[Step function]]&lt;br /&gt;
* New in 0.99&lt;br /&gt;
** [[Cardinal splines]]&lt;br /&gt;
** [[Step function II]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[How to comment the sourcecode for JsDoc-Toolkit]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7659</id>
		<title>Use the MediaWiki extension for JSXGraph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7659"/>
		<updated>2024-01-25T15:31:25Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download the MediaWiki extension [https://github.com/jsxgraph/jsxgraph from github].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
             {curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
{curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7658</id>
		<title>Use the MediaWiki extension for JSXGraph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7658"/>
		<updated>2024-01-25T15:31:00Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download the MediaWiki extension [https://github.com/jsxgraph/jsxgraph].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
             {curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
{curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7657</id>
		<title>Use the MediaWiki extension for JSXGraph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7657"/>
		<updated>2024-01-25T15:29:47Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download the MediaWiki extension [http://www.mediawiki.org/wiki/Extension:JSXGraph http://www.mediawiki.org/wiki/Extension:JSXGraph here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
             {curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
{curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7656</id>
		<title>Use the MediaWiki extension for JSXGraph</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Use_the_MediaWiki_extension_for_JSXGraph&amp;diff=7656"/>
		<updated>2024-01-25T15:28:55Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download the MediaWiki extension [http://www.mediawiki.org/wiki/Extension:JSXGraph http://www.mediawiki.org/wiki/Extension:JSXGraph here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot; box=&amp;quot;mybox&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;mybox&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
             {curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/distrib/GeonextReader.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph height=&amp;quot;500&amp;quot; width=&amp;quot;600&amp;quot; board=&amp;quot;board&amp;quot;  box=&amp;quot;jxgbox2&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;jxgbox2&#039;, {boundingbox: [-10, 10, 14, -10]});&lt;br /&gt;
var a = board.create(&#039;slider&#039;, [[1,8],[5,8],[0,1,4]]);&lt;br /&gt;
var b = board.create(&#039;slider&#039;, [[1,9],[5,9],[0,0.25,4]]);&lt;br /&gt;
var c = board.create(&#039;curve&#039;, [function(phi){return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],&lt;br /&gt;
{curveType:&#039;polar&#039;, strokewidth:4});      &lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7655</id>
		<title>Secant and tangent</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7655"/>
		<updated>2024-01-17T08:26:30Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box3&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
Construction 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 3:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces:true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7654</id>
		<title>Secant and tangent</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7654"/>
		<updated>2024-01-17T08:25:56Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box3&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
Construction 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 3:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true, showClearTraces});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7653</id>
		<title>Secant and tangent</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7653"/>
		<updated>2024-01-17T08:24:49Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box3&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
Construction 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 3:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7652</id>
		<title>Secant and tangent</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7652"/>
		<updated>2024-01-17T08:22:32Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box3&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
Construction 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10], {strokeWidth:3});&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10]);&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 3:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10]);&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7651</id>
		<title>Secant and tangent</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Secant_and_tangent&amp;diff=7651"/>
		<updated>2024-01-17T08:21:18Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;jsxgraph box=&amp;quot;box&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10]);&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box2&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box2&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var f = function(x) { return (Math.abs(x)); };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [f, -10, 10]);&lt;br /&gt;
&lt;br /&gt;
qf = board.create(&#039;glider&#039;, [0,0,graph], {size:5});&lt;br /&gt;
sf = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qf2 = board.create(&#039;point&#039;, [function(){ return qf.X()+sf.Value();},&lt;br /&gt;
           function(){ return f(qf.X()+sf.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
ef = board.create(&#039;point&#039;, [function(){ return qf2.X()-qf.X();},&lt;br /&gt;
           function(){ return (qf2.Y()-qf.Y())/(qf2.X()-qf.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qf,qf2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;jsxgraph box=&amp;quot;box3&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10]);&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
Construction 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var p = [];&lt;br /&gt;
p[0] = board.create(&#039;point&#039;, [-1,0], {size:2});&lt;br /&gt;
p[1] = board.create(&#039;point&#039;, [-0.5,1], {size:2});&lt;br /&gt;
p[2] = board.create(&#039;point&#039;, [2,0.5], {size:2});&lt;br /&gt;
p[3] = board.create(&#039;point&#039;, [6,5], {size:2});&lt;br /&gt;
var pol = JXG.Math.Numerics.lagrangePolynomial(p);&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [pol, -10, 10]);&lt;br /&gt;
&lt;br /&gt;
q = board.create(&#039;glider&#039;, [4.5,0,graph], {size:5});&lt;br /&gt;
s = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
q2 = board.create(&#039;point&#039;, [function(){ return q.X()+Math.max(s.Value(),0.01);},&lt;br /&gt;
        function(){ return pol(q.X()+Math.max(s.Value(),0.01));}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
e = board.create(&#039;point&#039;, [function(){ return q2.X()-q.X();},&lt;br /&gt;
        function(){ return (q2.Y()-q.Y())/(q2.X()-q.X());}], {style:7,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[q,q2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10]);&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Construction 3:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
board = JXG.JSXGraph.initBoard(&#039;box3&#039;, {boundingbox: [-5, 10, 7, -6], axis: true});&lt;br /&gt;
&lt;br /&gt;
var g = function(x) { return (x&amp;lt;=0)?0:1; };&lt;br /&gt;
graph = board.create(&#039;functiongraph&#039;, [g,-10, 10]);&lt;br /&gt;
&lt;br /&gt;
qg = board.create(&#039;glider&#039;, [0,0,graph], {size:4});&lt;br /&gt;
sg = board.create(&#039;slider&#039;, [[0,-3],[4,-3],[0.001,1,1]]);&lt;br /&gt;
qg2 = board.create(&#039;point&#039;, [function(){ return qg.X()+sg.Value();},&lt;br /&gt;
            function(){ return g(qg.X()+sg.Value());}], {face:&#039;[]&#039;,size:2});&lt;br /&gt;
eg = board.create(&#039;point&#039;, [function(){ return qg2.X()-qg.X();},&lt;br /&gt;
            function(){ return (qg2.Y()-qg.Y())/(qg2.X()-qg.X());}], {face:&#039;[]&#039;,size:2,name:&#039;Sekantensteigung&#039;,trace:true});&lt;br /&gt;
line = board.create(&#039;line&#039;,[qg,qg2],{strokeColor:&#039;#ff0000&#039;,dash:2});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Calculus]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7650</id>
		<title>Matrix multiplication II</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7650"/>
		<updated>2023-11-29T08:20:18Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example uses [http://mathjax.org MathJax].&lt;br /&gt;
&lt;br /&gt;
=== The underlying HTML / JavaScript code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;HTML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://polyfill.io/v3/polyfill.min.js?features=es6&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script id=&amp;quot;MathJax-script&amp;quot; src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7649</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7649"/>
		<updated>2023-11-29T08:19:08Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In mediawiki, it is sufficient to load the extension &amp;quot;SimpleMathJax&amp;quot; and configure it by setting&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$SmjDisplayMath = [[ &amp;quot;\\[&amp;quot;, &amp;quot;\\]&amp;quot; ] ];&lt;br /&gt;
$SmjExtraInlineMath = [[ &amp;quot;\\(&amp;quot;, &amp;quot;\\)&amp;quot; ] ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7648</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7648"/>
		<updated>2023-11-29T08:15:34Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7647</id>
		<title>Matrix multiplication II</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7647"/>
		<updated>2023-11-29T08:05:14Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://polyfill.io/v3/polyfill.min.js?features=es6&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script id=&amp;quot;MathJax-script&amp;quot; src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example uses [http://mathjax.org MathJax].&lt;br /&gt;
&lt;br /&gt;
=== The underlying HTML / JavaScript code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;HTML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://polyfill.io/v3/polyfill.min.js?features=es6&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script id=&amp;quot;MathJax-script&amp;quot; src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7646</id>
		<title>Matrix multiplication II</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Matrix_multiplication_II&amp;diff=7646"/>
		<updated>2023-11-29T08:04:43Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://polyfill.io/v3/polyfill.min.js?features=es6&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script id=&amp;quot;MathJax-script&amp;quot; src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;form&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;jsxgraph width=&amp;quot;600&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example uses [http://mathjax.org MathJax].&lt;br /&gt;
&lt;br /&gt;
=== The underlying HTML / JavaScript code ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;HTML&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://polyfill.io/v3/polyfill.min.js?features=es6&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script id=&amp;quot;MathJax-script&amp;quot; src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;form&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;toggleButton&amp;quot; value=&amp;quot;Show trace&amp;quot; onClick=&amp;quot;toggleTrace()&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  JXG.Options.text.useMathJax = true;&lt;br /&gt;
  var b1 = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-10,10,10,-10], axis:true});&lt;br /&gt;
  b1.suspendUpdate();&lt;br /&gt;
  var a = b1.create(&#039;slider&#039;,[[-5,-2],[5,-2],[-5,1,5]],{name:&#039;a&#039;, snapWidth:0.1});&lt;br /&gt;
  var b = b1.create(&#039;slider&#039;,[[-5,-3],[5,-3],[-5,0,5]],{name:&#039;b&#039;, snapWidth:0.1});&lt;br /&gt;
  var c = b1.create(&#039;slider&#039;,[[-5,-4],[5,-4],[-5,0,5]],{name:&#039;c&#039;, snapWidth:0.1});&lt;br /&gt;
  var d = b1.create(&#039;slider&#039;,[[-5,-5],[5,-5],[-5,1,5]],{name:&#039;d&#039;, snapWidth:0.1});&lt;br /&gt;
&lt;br /&gt;
  var v = b1.create(&#039;point&#039;,[2,2],{face:&#039;o&#039;, size:2, name:&#039;v&#039;});&lt;br /&gt;
  var va = b1.create(&#039;arrow&#039;,[[0,0],v]);&lt;br /&gt;
&lt;br /&gt;
  var v2 = b1.create(&#039;point&#039;,[&lt;br /&gt;
       function() {return a.Value()*v.X()+b.Value()*v.Y();},&lt;br /&gt;
       function() {return c.Value()*v.X()+d.Value()*v.Y();}],{face:&#039;o&#039;, size:2, name:&amp;quot;v&#039;&amp;quot;, fillColor: &#039;black&#039;, strokeColor: &#039;black&#039;});&lt;br /&gt;
  var va2 = b1.create(&#039;arrow&#039;,[[0,0],v2],{strokeColor:&#039;black&#039;, strokeWidth:1});&lt;br /&gt;
&lt;br /&gt;
  var t = b1.create(&#039;text&#039;,[-8, 5, &lt;br /&gt;
            function(){ return &#039;\\[ M = \\left(\\begin{matrix}&#039; &lt;br /&gt;
                        + (a.Value()).toFixed(2) + &#039;&amp;amp;&#039;&lt;br /&gt;
                        + (b.Value()).toFixed(2) + &#039;\\\\&#039;&lt;br /&gt;
                        + (c.Value()).toFixed(2) +&#039;&amp;amp;&#039; &lt;br /&gt;
                        + (d.Value()).toFixed(2)+&#039;\\end{matrix}\\right)\\]&#039;;}]);&lt;br /&gt;
&lt;br /&gt;
  var t2 = b1.create(&#039;text&#039;,[-8,2,&lt;br /&gt;
               function(){ return &amp;quot;\\[\\lambda = \\frac{|v&#039;|}{|v|} = &amp;quot; &lt;br /&gt;
                 + (&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v2.X(),v2.Y()])/&lt;br /&gt;
                     JXG.Math.Geometry.distance([0,0],[v.X(),v.Y()])&lt;br /&gt;
                   ).toFixed(3) &lt;br /&gt;
                   + &amp;quot;\\]&amp;quot;;}]);&lt;br /&gt;
  b1.unsuspendUpdate();&lt;br /&gt;
&lt;br /&gt;
showTrace = false;&lt;br /&gt;
var toggleTrace = function() {&lt;br /&gt;
  showTrace = !showTrace;&lt;br /&gt;
  v.setProperty({trace: showTrace});&lt;br /&gt;
  v2.setProperty({trace: showTrace});&lt;br /&gt;
  var b = document.getElementById(&amp;quot;toggleButton&amp;quot;);&lt;br /&gt;
  if (showTrace) {&lt;br /&gt;
     b.value = &amp;quot;Hide trace&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
     b.value = &amp;quot;Show trace&amp;quot;;&lt;br /&gt;
     v.clearTrace();&lt;br /&gt;
     v2.clearTrace();&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7645</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7645"/>
		<updated>2023-11-29T08:03:17Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 dx\).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7644</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7644"/>
		<updated>2023-11-29T08:02:53Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
This example uses MathJax to render mathematical text like &lt;br /&gt;
\(\int x^2 \).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7643</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7643"/>
		<updated>2023-11-29T07:57:16Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
This example uses MathJax to render mathematical text. &lt;br /&gt;
&lt;br /&gt;
\[\int x^2 \]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
	<entry>
		<id>https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7642</id>
		<title>Using MathJax</title>
		<link rel="alternate" type="text/html" href="https://jsxgraph.org/wiki/index.php?title=Using_MathJax&amp;diff=7642"/>
		<updated>2023-11-29T07:56:54Z</updated>

		<summary type="html">&lt;p&gt;A WASSERMANN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
This example uses MathJax to render mathematical text. &lt;br /&gt;
&lt;br /&gt;
$\int x^2$.&lt;br /&gt;
&lt;br /&gt;
\[\int x^2 \]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://mathjax.org MathJax] is an open-source JavaScript display engine for LaTeX and MathML that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first solutions how to use MathJax in texts inside of a JSXGraph construction have been worked out by [http://www.onemathematicalcat.org/ Carol Fisher] and [http://wiki.paranormalcop.org/ Agentyikes]. Thank you very much for doing this great work. &lt;br /&gt;
&lt;br /&gt;
Meanwhile, JSXGraph contains full support of MathJax. Here is an example how to enable &#039;&#039;&#039;dynamic&#039;&#039;&#039; MathJax syntax inside of JSXGraph.&lt;br /&gt;
&amp;lt;jsxgraph&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,7,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/jsxgraph&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The underlying JavaScript code===&lt;br /&gt;
The first step is to include the freely available MathJax JavaScript library (in addition to the JSXGraph library):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script async src=&amp;quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js&amp;quot; id=&amp;quot;MathJax-script&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step is to enable MathJax rendering in the JSXGraph options:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To display MathJax inside of JSXGraph, the function that is linked to (dynamic) text has to return valid MathJax syntax.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }], {fontSize:24});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete program code looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var brd, k;&lt;br /&gt;
JXG.Options.text.useMathJax = true;&lt;br /&gt;
brd = JXG.JSXGraph.initBoard(&#039;jxgbox&#039;, {boundingbox:[-5,20,5,-5], axis:true, showNavigation:true, showCopyright:true});&lt;br /&gt;
k = brd.create(&#039;slider&#039;,[[-4,-2],[3,-2],[-5,1,5]],{name:&#039;n&#039;, snapWidth:1});&lt;br /&gt;
brd.create(&#039;functiongraph&#039;, [function(t) {return JXG.Math.pow(Math.E,t*k.Value());}],{strokeColor:&#039;#ff0000&#039;});&lt;br /&gt;
brd.create(&#039;text&#039;,[-4,15,&lt;br /&gt;
  function() { &lt;br /&gt;
    return &#039;\\[f(x) = e^{&#039; + k.Value() + &#039;x}\\]&#039;;&lt;br /&gt;
  }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Examples]]&lt;br /&gt;
[[Category:Text]]&lt;/div&gt;</summary>
		<author><name>A WASSERMANN</name></author>
	</entry>
</feed>