Bjk*_*ean 1 python opengl pyopengl opengl-compat
我正在尝试填充由4行生成的四边形GL_LINES.但是,当我尝试填充四边形时,它只填充三角形.这是绘制线条的代码:
def SurfaceContour(self, vertices, edges):
glBegin(GL_LINES)
for edge in edges:
for vertex in edge:
glColor3fv((1.0, 0.0, 0.0))
glVertex3fv(vertices[vertex])
glEnd()
Run Code Online (Sandbox Code Playgroud)
这是绘制填充四边形的代码:
def Surfaces(self, vertices):
glBegin(GL_QUADS)
for i in range(4):
glColor4f(1, 1, 1, 0.3)
glVertex3fv(vertices[i ,:])
glEnd()
Run Code Online (Sandbox Code Playgroud)
这是我传入的顶点矩阵:
[[ 0. -20.23 7. ]
[ 0. -20.23 -7. ]
[ 100. -10. 5. ]
[ 100. -10. -5. ]]
Run Code Online (Sandbox Code Playgroud)
这个顶点的顺序
[[ 0. -20.23 7. ]
[ 0. -20.23 -7. ]
[ 100. -10. 5. ]
[ 100. -10. -5. ]]
Run Code Online (Sandbox Code Playgroud)
是这样的:
如果你想绘制由4个顶点定义的四边形,那么你要么绘制一个GL_TRIANGLE_STRIP:
def Surfaces(self, vertices):
glBegin(GL_TRIANGLE_STRIP)
for i in range(4):
glColor4f(1, 1, 1, 0.3)
glVertex3fv(vertices[i ,:])
glEnd()
Run Code Online (Sandbox Code Playgroud)
或者您必须更改顶点的顺序,它与以下内容的要求匹配GL_QUAD:
[[ 0. -20.23 7. ]
[ 0. -20.23 -7. ]
[ 100. -10. -5. ]
[ 100. -10. 5. ]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |