2

我有一个 bool 函数,可以检查点是否在椭圆上。此外,用户可以将鼠标移动到椭圆路径附近以选择椭圆,以便将其移动到新位置。我检查了椭圆边界矩形的角点。如果用户选择了这四个点,就启用了椭圆的resize功能,我已经实现了。

为了启用移动功能,我正在cushion使用 Region 类检查距离等于(即提供给鼠标位置的填充)的点。

试过:: 在下面的代码中,我考虑了3个边界矩形,如果要检查的点位于椭圆外区域和椭圆内区域之间,我想返回true。如果不是,返回false。

我希望在涂成红色的区域中检查我的观点。pS::连续边界矩形之间的距离与图片中绘制的不同。即椭圆边缘(外部、中间和内部)之间的距离相同 我提到的链接::解决方案的链接 1

编辑:: 解决了 GraphicsPath.IsOutlineVisible()的问题

4

2 回答 2

1

我直接使用 GraphicsPath 对象调用 IsOutlineVisible(point,Pen) 来执行此操作。参考

于 2013-08-12T08:38:33.623 回答
1

如果您Region手头有对象,为什么不使用IsVisible它支持的方法,如下所示:

if(yourEllipseRegion.IsVisible(pointToCheck)){
   //your code here
}

更多信息Region.IsVisible

于 2013-08-12T07:48:41.510 回答