OpenGL怎么为由简单凸多边形组合成的复合多边形(凹)生成1px的黑色边框?
原帖链接:
http://topic.csdn.net/u/20120518/15/9f037bce-7d51-4239-8dfa-2572840f17f7.html?22906
帖子发错区了,“图形图像/机器视觉” 区有点儿冷
100分送不出去,麻烦各位来看看啊~
不知道标题有没有表达出我所想要表达的意思,我仔细阐述一下吧:
最终的多边形是由多个简单凸多边形以边邻接的方式组合而成的,
两个邻接凸多边形的邻接边是完美重合的。
我想为由 n 个简单凸多边形按如上方式 组合起来的复杂凹多边形生成外围的一圈黑色边线。
不知道各位大大有什么好的办法?
提一下我的思路:
首先以 GL_LINE_LOOP 的方式绘制一个个元凸多边形的边,
最后得到的效果就是复杂凹多边形的外围一圈黑色边线出来了。
不过问题就是,邻接边也被弄成黑色的了
我写了一个方法,将所有的邻接边收集起来
然后再用白色绘制一遍,这样就得到了大体的实现,
不过也有缺点,邻接边的两个端点也被覆盖为白色的了,
等于说外围的一圈黑边上会出现一些白色的点,不是很舒服
抛砖引玉,不知道各位大大能不能给出些更好的办法。
还有就是,我用的 opengles,GL_LINE_LOOP绘制的时候,
多边形的边如果两个端点同在 x 轴或同在 y 轴上面
那么最后绘制出来的多边形竟然会将水平线和竖直线丢失掉。
斜线绘制不出来我就认了,但是竖直线和水平线绘制不出来,我真是想破脑袋都不知道怎么回事儿,
还望高手指点一下~
[解决办法]
我的一点想法,不知道是不是正确。
首先,这些多边形是怎么表示的,如果表示为线段。检测线段的左右2侧的像素的颜色,如果一侧为白,一侧为黄,则加粗之。