Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenGL中的镶嵌_C++_Opengl - Fatal编程技术网

C++ OpenGL中的镶嵌

C++ OpenGL中的镶嵌,c++,opengl,C++,Opengl,在细分一些自相交多边形时,我没有得到预期的填充 例如,使用一些简单的示例代码演示OpenGL细分,可以从 并做了一些非常简单的修改: 首先,在第272行,将自相交多边形的x&y坐标更改为 GLdouble star[5][6] = { {1.0, 2.0, 0, 1, 0, 0}, // 0: x,y,z,r,g,b {0.0, 2.0, 0, 0, 1, 0}, // 1:

在细分一些自相交多边形时,我没有得到预期的填充

例如,使用一些简单的示例代码演示OpenGL细分,可以从

并做了一些非常简单的修改:
首先,在第272行,将自相交多边形的x&y坐标更改为

GLdouble star[5][6] = { {1.0, 2.0, 0,  1, 0, 0},       // 0: x,y,z,r,g,b
                        {0.0, 2.0, 0,  0, 1, 0},       // 1:
                        {3.0, 0.0, 0,  1, 0, 1},       // 2:
                        {0.0, 4.0, 0,  1, 1, 0},       // 3:
                        {-1.0, 0.0, 0,  0, 0, 1} };    // 4:
在第296行,将填充规则更改为偶数

gluTessProperty(tess, GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_ODD);
编译并运行,我得到了下图,它显示了我不相信的是正确的填充。(我没有看到第三个对象中的三角形孔。)

这是没有填充的多边形的样子。。。

哦,我的天哪,周围还有人使用GLU细分。好吧,祝你玩得开心,一定不要把它误认为是OpenGL。感谢Christian的评论,但建议一个替代方案会更有用。@AngusJohnson你可以试试LibTess2,它是GLU tessellator的现代翻拍。顺便说一句,谢谢你的PolygonClipper库!另外,你有没有在其他形状上尝试过这样的自相交?谢谢你的建议,让我们重新定义2 MichaelIV。谢谢你的鼓励,再剪一次。正是因为Clipper,以及使用各种图形库为它创建简单的演示应用程序,我才与GLU细分作斗争。是的,我尝试过其他的自相交形状,它似乎大部分都像预期的那样工作。@AngusJohnson太好了,如果LibTess2为您工作,请在这里告诉我们!