球体绘制算法python

时间:2014-04-25 10:56:59

标签: python opengl geometry glut glu

下面给出的代码是一种在不使用glutsphere的情况下在opengl中绘制球体的算法。参数与glutsphere()相同。但我无法理解这段代码。 任何人都可以请你解释这个代码。它是如何工作和绘制球体的?

def draw(radius,lats,longs) :
    for i in range(0,lats):
        lat0 = math.pi*(-0.5 + float((i-1))/lats)
        z0   = math.sin(lat0)
        zr0 = math.cos(lat0)

        lat1 = math.pi*(-0.5 + float(i)/lats)
        z1 = math.sin(lat1)
        zr1 = math.cos(lat1)

        glColor3f(0.0,0.0,1.0)
        glBegin(GL_QUAD_STRIP)
        for j in range(0,longs):
            lng = 2*math.pi*float((j-1))/longs
            x=  math.cos(lng)
            y = math.sin(lng)

            glNormal3f(x * zr0, y * zr0, z0)
            glVertex3f(x * zr0, y * zr0, z0)
            glNormal3f(x * zr1, y * zr1, z1)
            glVertex3f(x * zr1, y * zr1, z1)
        glEnd()

0 个答案:

没有答案