如何解决Region.IsVisible判断结果不准确

abc221414 2010-12-21 06:03:35
在判断某个点是否存在于某个多边形中的时候(任意凸或者凹多边形,保证每个顶点都是90°即可),当参数点的坐标中包含小数的时候,系统会把小数四舍五入,从而导致判断结果的不准确。比如:
myRegion.IsVisible(new PointF(1.4,1.5)) => myRegion.IsVisible(new PointF(1,2))

请问如何能避免参数中的小数被四舍五入,谢谢。

补充一个问题:当参数点存在于多边形的边线上的时候,如何让返回结果为true?谢谢
...全文
486 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc221414 2010-12-22
  • 打赏
  • 举报
回复
求支援
abc221414 2010-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xingyuebuyu 的回复:]
C# code
Region myRegion = new Region(this.ClientRectangle);
bool bolResult = myRegion.IsVisible(new PointF((float)1.4, (float)1.5));


需要转换为float类型小数位才会保留
[/Quote]

我试验过了,还是会出现四舍五入的效果。求支援。。。
abc221414 2010-12-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
判断多边型的区域内
http://topic.csdn.net/u/20080912/14/1e9b4e1a-cd43-4800-a552-e6da6a95e924.html
[/Quote]

您提到的帖子我之前看到过,可是我的多边形还有可能是凹多边形,帖子里的方法怕是会有问题,我也正在研究中,谢谢您
wuyq11 2010-12-21
  • 打赏
  • 举报
回复
xingyuebuyu 2010-12-21
  • 打赏
  • 举报
回复
            Region myRegion = new Region(this.ClientRectangle);
bool bolResult = myRegion.IsVisible(new PointF((float)1.4, (float)1.5));


需要转换为float类型小数位才会保留

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧