Локатор выходит за пределы области графика

Когда я запускаю следующий код

pMin = {-3, -3};
pMax = {3, 3};
range = {pMin, pMax};
Manipulate[
 GraphicsGrid[
  {
   {Graphics[Locator[p], PlotRange -> range]},
   {Graphics[Line[{{0, 0}, p}]]}
   }, Frame -> All
  ],
 {{p, {1, 1}}, Locator}
]

Mathematica graphics

Я ожидаю, что элемент управления Locator находится в границах первого Graph, но вместо этого его можно перемещать по всей области GraphicsGrid. Есть ли ошибка в моем коде?

Я также пробовал

{{p, {1, 1}}, pMin, pMax, Locator}

вместо

{{p, {1, 1}}, Locator}

, но он ведет себя совершенно неправильно.

ОБНОВЛЕНИЕ

Спасибо всем, это мое окончательное решение:

Manipulate[
 distr1 = BinormalDistribution[p1, {1, 1}, \[Rho]1];
 distr2 = BinormalDistribution[p2, {1, 1}, \[Rho]2];
 Grid[
  {
   {Graphics[{Locator[p1], Locator[p2]}, 
     PlotRange -> {{-5, 5}, {-5, 5}}]},
   {Plot3D[{PDF[distr1, {x, y}], PDF[distr2, {x, y}]}, {x, -5, 5}, {y, -5, 5}, PlotRange -> All]}
   }],
 {{\[Rho]1, 0}, -0.9, 0.9}, {{\[Rho]2, 0}, -0.9, 0.9},
 {{p1, {1, 1}}, Locator},
 {{p2, {1, 1}}, Locator}
 ]

Mathematica graphics

ОБНОВЛЕНИЕ

Теперь проблема в том, что я не могу изменить размер и повернуть нижний трехмерный график. Кто-нибудь знает, как это исправить? Я вернулся к решению с двумя объектами Slider2D.

6
задан Sjoerd C. de Vries 3 January 2012 в 21:56
поделиться