这可能看起来像一个愚蠢的问题,但有没有办法确定用户点击的椭圆的哪个部分(比如象限)?
或者是根据相对于形状本身的鼠标点坐标来计算它的唯一选择吗?
我正在开发一个控件,允许用户点击椭圆的任何部分并拖动它以调整大小(如果有帮助的话)。
答案 0 :(得分:1)
确定与形状相关的鼠标坐标应该相当容易。检查X坐标,看它是否大于或等于Shape.Width / 2
。然后用Y和Shape.Height做同样的事情。它应该为您提供单击鼠标的正确象限。
答案 1 :(得分:1)
你可以在Mathworld中看到椭圆的一般方程是:
。
椭圆内的点是等式产生<= 1
的点。
如果椭圆外接到矩形R
,则:
(x0,y0) = center(R)
a = width(R)/2
b = height(R)/2
(x,y)
是点击的点。