I'm new to OpenGL and I try to use the following code (GL_POLYGON) to draw a circle using python. But it seems like it only draws it when the points are added in a clockwise manner, otherwise, it just draws nothing
This successfully draws a circle
p = self.pos + Y_VEC * self.height # center of the circle dv = self.dir_vec * self.radius # vector point forward rv = self.right_vec * self.radius # vector point to right sides = 20 # sides of the circle (circle is in fact polygon) angle = 0 inc = 2 * math.pi / sides glColor3f(0, 1, 0) glPointSize(10.0) glBegin(GL_POLYGON) # GL_POLYGON drawn but not shown in top view? GL_LINE_LOOP works # glVertex3f(*p) # used for TRIANGLE_FAN for i in range(sides+1): pc = p + dv * math.cos(angle) + rv * math.sin(angle) glVertex3f(*pc) angle -= inc glEnd()
Nothing rendered (only change is "-=" to "+=")
angle = 0 inc = 2 * math.pi / sides glColor3f(0, 1, 0) glPointSize(10.0) glBegin(GL_POLYGON) # GL_POLYGON drawn but not shown in top view? GL_LINE_LOOP works # glVertex3f(*p) # used for TRIANGLE_FAN for i in range(sides+1): pc = p + dv * math.cos(angle) + rv * math.sin(angle) glVertex3f(*pc) angle += inc # change here glEnd()
Is this normal? What am I doing wrong?
https://stackoverflow.com/questions/66792266/opengl-gl-polygon-only-works-when-drawing-clockwise March 25, 2021 at 10:36AM
没有评论:
发表评论