Настройка размера шага с помощью локатора и манипуляции в Mathematica - PullRequest
1 голос
/ 25 августа 2011

С учетом этого кода Mathematica,

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

Как установить шаговое расстояние на локаторе?И если возможно, ограничить их?

Ответы [ 2 ]

5 голосов
/ 25 августа 2011

Вы можете сделать что-то вроде

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}]
0 голосов
/ 25 августа 2011

Документация гласит:

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

позволяет значению u варьироваться от umin до umax в шагах du .

и

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

позволяет u принимать дискретные значения.

Один из нихподходы должны работать для вас.

...