2

このMathematicaコードを考えると、

Manipulate[Graphics[Line[{{0, 0}, p}], PlotRange -> 2], {{p, {1, 1}}, Locator}]

ロケーターのステップ距離を設定するにはどうすればよいですか?そして、可能であれば、それらを制約しますか?

4

2 に答える 2

6

あなたは次のようなことをすることができます

Manipulate[
 Graphics[Line[{{0, 0}, p}], 
  PlotRange -> 2], {{p, {1, 1}}, {-1, -1}, {1, 1}, {0.4, 0.5}, Locator}]

これにより、ロケーターは水平方向の間隔が0.4、垂直方向の間隔が0.5の長方形の格子に制限されます。ロケーターの座標の範囲は、およびで指定され{xmin,ymin} = {-1,-1}ます{xmax, ymax} = {1,1}


より柔軟性が必要な場合、たとえば、ロケーターの位置を非長方形の格子またはより一般的な座標のセットに制限したい場合は、次のようにすることができます。

Manipulate[
 With[{tab = RandomReal[{-1, 1}, {40, 2}]}, 
  LocatorPane[Dynamic[p, (p = Nearest[tab, #][[1]]) &], 
   Graphics[{Line[{{0, 0}, Dynamic[p]}], {Red, Point /@ tab}}, PlotRange -> 2]]],
 {{p, {1, 1}}, ControlType -> None}]
于 2011-08-24T21:21:15.183 に答える
0

ドキュメントには次のように記載されています。

Manipulate[expr, {u, umin, umax, du}]

uの値をステップduでuminumaxの間で変化させることができます。

Manipulate[expr, {u, {u1, u2, u3,...}}]

uが離散値を取ることを可能にします。

これらのアプローチの1つがあなたのために働くはずです。

于 2011-08-24T21:20:34.477 に答える