<b>用 jsxgraph 做几何</b>
(nom : <span class="tt wims_code_words">jsxgraph</span>).</b>
<br>

jsxgraph 是做动态几何的 applet.
用户可以移动一个点. 程序会自动分析新的坐标.

这一类型的回答是相当有技巧的,
因为开发者要能运用 jsxgraph 的 javascript 语言才能画出图形.
<p>为了在文中插入回答的区域,
必须使用命令 <span class="tt wims_code_words">\embed</span> :
</p>
<pre>
\embed{reply1,option}
</pre>
关于 <span class="tt wims_code_words">option</span> 的说明 :
<ul><li>第1行是 applet 的大小, 以像素为单位 (宽 x 高).
</li><li>
第2行定义 JSXGraph 的"边框"
(在下例中就是 <span class="tt">jxgbox</span>).
这个词应该出现在后面变量的名字里.
</li><li>
第3行是张贴 applet 的脚本.
用户以下述形式定义点
<pre>
jxgbox_rep1 = brd.create('point',jxgbox_var1 );
</pre>
</li><li>第4行给出变量
<span class="tt">jxgbox_var1</span> 的初始位置 (以分号分隔).
</li></ul>
正确答案以点
<span class="tt">jxgbox_var1</span>, ... 的 <span class="tt">x,y</span> 位置的形式给出,
以分号分隔. 如果某个点的回答是自由的,
只要把它的值取成一个尚未定义的变量
(下例中为 <span class="tt">\c</span>).
这样在分析时可以使用补充条件,
只要应用命令 <span class="tt wims_code_words">\condition{}{}</span> 即可.
<p>
也可以改动光标的位置. 在这种情形,
答案就是一个整数. 在自由回答的情形,
必须指明这个变量的取值应该是一个数 (用冒号
<span class="tt wims_code_words">:</span> 分隔), 例如,
</p>
<pre>
\answer{}{\rep1:1;\rep2:2}{type=jsxgraph}
</pre>
默认值是 2.

<p>
目前可用的选项是精度 (绝对).
</p><p>
<textarea id="wims_show" cols="100" rows="30" name="wims_show" readonly="readonly">
\title{jsxgraph 的例}
\precision{100}
\text{a=randint(1..5), randint(1..5)}
\text{b=randint(1..5), randint(1..5)}
\text{script= var brd = JXG.JSXGraph.initBoard('jxgbox', {
 axis:true,boundingbox: [-6, 6, 6, -6], grid:true});
jxgbox_rep1 = brd.create('point',jxgbox_var1 );
jxgbox_rep2 = brd.create('point',jxgbox_var2 );
jxgbox_rep3 = brd.create('point',jxgbox_var3 )}

\statement{把点 A 放在 (\a). 点 B 放在 (\b).
点 C 放在直线 AB 上.
 \embed{r1,400x400
jxgbox brd
\script
jxgbox_var1=[0,0] ; jxgbox_var2=[1,0]; jxgbox_var3=[0,1]
  }
}

\answer{}{\a;\b;\c}{type=jsxgraph}{option=precision=10}

\matrix{rep=\reply1}
\real{test=abs((\rep[3;1]-\a[1])*(\b[2]-\a[2]) - (\rep[3;2]-\a[2])*(\b[1]-\a[1]))}
\condition{C est sur AB}{ \test < 0.1}
</textarea>
