c#:检查椭圆上的点

时间:2013-08-12 05:50:57

标签: c# winforms region ellipse graphicspath

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

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

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

我希望在红色区域检查我的观点。 p.S :: 连续的边界矩形之间的距离是相同的,不同于图中所示。椭圆边缘(外部,中间和内部)之间的距离相同 我提到的链接:: Link 1用于解决方案

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

2 个答案:

答案 0 :(得分:1)

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

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

更多信息Region.IsVisible

答案 1 :(得分:1)

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