CCDrawNode::drawPolygon绘制凹多边形显示异常

    CCDrawNode* frame = CCDrawNode::create();
    addChild(frame, 2);

    CCSize s = CCDirector::sharedDirector()->getWinSize();
    CCPoint rectangle;
    // test 1
    rectangle = ccp(0, 0);
    rectangle = ccp(s.width, 0);
    rectangle = ccp(s.width, 200);
    rectangle = ccp(150, 200);
    rectangle = ccp(150, s.height);
    rectangle = ccp(0, s.height);

     frame->drawPolygon(rectangle, 6, ccc4f(1, 0.5, 0.5, 0.5), 1, ccc4f(1, 0, 0, 1));

    // test 2
    rectangle = ccp(0, 0);
    rectangle = ccp(s.width, 0);
    rectangle = ccp(s.width, 200);
    rectangle = ccp(150, 200);
    rectangle = ccp(150, s.height);
    rectangle = ccp(0, s.height);


    frame->drawPolygon(rectangle, 6, ccc4f(1, 1, 0, 0.5), 1, ccc4f(1, 0, 0, 1));


```

 
红色区域的边框
橙色区域是正常显示区域
露出来的黄色区域就是异常显示区了。

代码中test1显示没有什么问题,
test2中的点跟test1中的点是“一样”的,只是“起点”不同,但是显示就已经异常了

看起来是polygon的绘制是直接绘制三角形,而没有做凹多边形检测导致的。

请问官方会修改这个问题吗?
有没有大神能帮忙解决这个问题?
1赞

吐槽下编辑器,居然没法预览,反正我是不会承认是我浏览器有问题的:15:

很显然不会去修复这个bug 一直都有这个bug 只能自己想办法分割一下成凸多边形画出来 分割成三角形的比较多 不过我没找到像样的算法 :13:

— Begin quote from ____

引用第2楼zngame于2014-08-18 16:22发表的 :
很显然不会去修复这个bug 一直都有这个bug只能自己想办法分割一下成凸多边形画出来 分割成三角形的比较多 不过我没找到像样的算法 :13: http://www.cocoachina.com/bbs/job.php?action=topost&tid=223234&pid=1032276

— End quote

我找了一个分割的算法
http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml
但是分割了之后画出来,很多莫名其妙的毛刺

求大神指点!

请问楼主找到解决方案了吗

这么久了还没修复这么明显的bug,好垃圾哦。。