Yes, it was the cos and sin functions expecting radians. Is it possible to attach files here or do I have to just use links?
On Jan 18, 9:18 pm, Bruce Smith <[email protected]> wrote: > Another possible issue -- if you got the cos and sin functions from the > python math module, they want radians but you are passing them degrees. This > could definitely produce warped quads, by wrapping around the sphere too > many times in theta, especially for quads that overlap one of the sphere > poles. > > - Bruce Smith > > On Tue, Jan 18, 2011 at 9:19 AM, Will <[email protected]> wrote: > > This isn't really a pyglet question but I thought I would ask it > > anyway. I am trying to approximate a sphere using the instructions at > >http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/sphere_cylinder/, > > but it doesn't look right at all. This is my code: > > > def draw_sphere(facets, radius=100): > > """approximate a sphere using a certain number of facets""" > > > dtheta = 180.0 / facets > > dphi = 360.0 / facets > > > global sphere_list > > sphere_list = glGenLists(2) > > glNewList(sphere_list, GL_COMPILE) > > > glBegin(GL_QUADS) > > > for theta in range(-90, 90, int(dtheta)): > > for phi in range(0, 360, int(dphi)): > > print theta, phi > > a1 = theta, phi > > a2 = theta + dtheta, phi > > a3 = theta + dtheta, phi + dphi > > a4 = theta, phi + dphi > > > angles = [a1, a2, a3, a4] > > > print 'angles: %s' % (angles) > > > glColor4f(theta/360.,phi/360.,1,0.5) > > > for angle in angles: > > x, y, z = angle_to_coords(angle[0], angle[1], radius) > > print 'coords: %s,%s,%s' % (x, y, z) > > glVertex3f(x, y, z) > > > glEnd() > > > glEndList() > > > def angle_to_coords(theta, phi, radius): > > """return coordinates of point on sphere given angles and > > radius""" > > > x = cos(theta) * cos(phi) > > y = cos(theta) * sin(phi) > > z = sin(theta) > > > return x * radius, y * radius, z * radius > > > It seems that some of the quads aren't simple, i.e. the edges are > > crossing, but changing the order of the vertices doesn't seem to make > > any difference. > > > -- > > You received this message because you are subscribed to the Google Groups > > "pyglet-users" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<pyglet-users%[email protected]> > > . > > For more options, visit this group at > >http://groups.google.com/group/pyglet-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en.
