Skip to main content
 首页 » 编程设计

python之GL_QUAD 绘制三角形

2025年05月04日22sharpest

我正在尝试用 GL_LINES 填充由 4 行生成的四边形。但是,当我尝试填充四边形时,它只会填充三角形。这是绘制线条的代码:

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() 

这是绘制填充四边形的代码:

def Surfaces(self,  vertices): 
     glBegin(GL_QUADS) 
     for i in range(4): 
        glColor4f(1, 1, 1, 0.3) 
        glVertex3fv(vertices[i ,:]) 
     glEnd() 

这是我传入的顶点矩阵:

[[   0.    -20.23    7.  ] 
 [   0.    -20.23   -7.  ] 
 [ 100.    -10.      5.  ] 
 [ 100.    -10.     -5.  ]] 

请您参考如下方法:

这个顶点的顺序

[[   0.    -20.23    7.  ] 
 [   0.    -20.23   -7.  ] 
 [ 100.    -10.      5.  ] 
 [ 100.    -10.     -5.  ]] 

是这样的:

如果要绘制由 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() 

或者您必须更改顶点的顺序,使其符合 GL_QUAD 的要求:

[[   0.    -20.23    7.  ] 
 [   0.    -20.23   -7.  ] 
 [ 100.    -10.     -5.  ] 
 [ 100.    -10.      5.  ]] 

进一步查看 Primitive