如何获得相对于任何形式的UIElement的光标位置

时间:2018-12-05 09:12:31

标签: c# math geometry

我试图在下图中找到与红线相关的光标位置。

我尝试了以下主题: Using atan2 to find angle between two vectorsHow to calculate the angle between a line and the horizontal axis?但使用      Math.Atan2

但是有一个问题,如果使用这些方法,P1和P2的值将不相同。

是否有任何方法可以使用红色矢量获取UIElement(例如,椭圆形)上任何点的任何位置,例如具有相同角度的每个点(此处为P1和P2)具有相同的值?

enter image description here

1 个答案:

答案 0 :(得分:2)

是的,并且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