Как получить позицию курсора относительно ЛЮБОЙ формы UIElement - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь найти позицию курсора, связанную с красной линией на изображении ниже.

Я пробовал следующие темы: Использование atan2 для нахождения угла между двумя векторами И Как рассчитать угол между прямой и горизонтальной осью? , но с использованием Math.Atan2

Но есть проблема, P1 и P2 имеют разные значения, если я использую эти методы.

Существует ли какой-либо метод, позволяющий получить любую позицию любых точек на элементе UIE (например, эллипсе), используя красный вектор, например, каждая точка с одинаковым углом (здесь P1 и P2) имеет одинаковое значение?

enter image description here

1 Ответ

0 голосов
/ 05 декабря 2018

Да, и atan2 - совершенно необходимый метод.Мы можем использовать перекрестный и точечный продукт для достижения результата:

 bx = redline_end.x - center.x
 by = redline_end.y - center.y
 // here bx=0 and by=75
 px = p1.x - center.x
 py = p1.y - center.y
 angle = atan2(px * by - py * bx, px * bx + py * by)  //and similar for P2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...