Есть ли способ узнать, на какую часть формы эллипса WPF нажал пользователь? - PullRequest
0 голосов
/ 28 января 2011

Это может показаться глупым вопросом, но есть ли способ определить, какую часть (скажем, квадранта) эллипса щелкнул пользователь?

Или это единственная возможность просто вычислить ее на основе координат точки мыши относительно самой фигуры?

Я работаю над элементом управления, который позволяет пользователю щелкнуть любую часть эллипса и перетащить его, чтобы изменить его размер, если это поможет.

Ответы [ 2 ]

1 голос
/ 28 января 2011

В Mathworld вы можете видеть, что общее уравнение для эллипса:

equation for ellipse.

Точки в эллипсе - это те, для которых уравнение дает <= 1.

Если эллипс ограничен прямоугольником R, то:

  • (x0,y0) = center(R)
  • a = width(R)/2
  • b = height(R)/2
  • (x,y) - точка щелчка.
1 голос
/ 28 января 2011

Выяснить координаты мыши в зависимости от формы должно быть довольно легко. Проверьте координату X и посмотрите, больше или равно Shape.Width / 2. Затем сделайте то же самое с Y и Shape.Height. Он должен дать вам правильный квадрант, в котором была нажата мышь.

...