求不规则图形内像素点(凸状)

来源:互联网 发布:nginx tomcat 502错误 编辑:程序博客网 时间:2024/06/06 12:20

原文地址:http://www.blogbus.com/linxinboy-logs/257762182.html

最近想到一个问题: 如何取得不规则图像内的像素点。

查了一下,资料比较少, 故自己写了一个, 笔记一下。

关于凸装图形,比较简单。

如图 凸状图形最多和一条垂直线有 2 个交点,将直线分为3 段,则 第一段为区域外部, 第二段为区域内部, 第三段为外部。

对于凹状图形 复杂些 因为于直线的交点有不定个数,所以我们需要去检查每一段到底是出于外还是内。 

我的想法是在没一段内容上取这一点,将它和图形中点 (minX + maxX)/2, (minY + maxY)/2 的直线段, 查看此线段是否和图形边缘有交点。如果有则在图形外,如果没有则在图形内。不过这只能在图形不是极度不规则的情况下。

比如下图就无法实现。

红色为中点,很显然,上述方法不通。 暂未想到比较好的解决办法。

最后显示一下 代码结果:

如图 如果凹状图形在垂直方向 于直线只有两个交点 代码也是可以的, 但是如果水平方向凹陷就不行了。

代码

0 0