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