黑马程序员技术交流社区

标题: c#判断点是否在多边形内 [打印本页]

作者: 汪振    时间: 2013-3-2 16:43
标题: c#判断点是否在多边形内
http://kenchell.blog.163.com/blog/static/2608830920101011114328357/
这是网上的一篇现有的帖子,用射线法根据交点的个数判断点是否在多边形内

之前还看到过一篇文章,也是用射线法,它是返回三个数值1,0,-1(大体意思)
代表是在多边形内部,在多边形边界上,在多边形外部。
判断点是否在多边形内部,网上介绍的大体有射线法,面积法,角度和法等

微软其实已经给我们实现了一个方法判断点是否在多边形内那就是IsVisable方法
  1. <blockquote>using (Graphics ddd = this.picbox1.CreateGraphics())
复制代码
                    GraphicsPath myPath12 = new GraphicsPath();
                    myPath12.AddPolygon(point121);
                    Region myregion12 = new Region(myPath12);
                    bool ature = myregion12.IsVisible(pnt);

               }

实例化一个“GraphicsPath ”类,然后调用它的IsVisable方法传入所要判断的点,如果在多边形内部则返回true否则false
不过也有一个缺憾就是不能完成在边界上的判断。
估计IsVisable也是用的射线法进行判断的,这个效率会比较高
如果谁写出来了,请不吝分享啊{:soso_e113:}先谢过了

作者: 许庭洲    时间: 2013-3-2 19:01
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2