View Full Version : Sphere With Lines

Stan Swank II

01-30-2006, 07:45 AM

Hello Everyone;

I am trying to write a program to draw a sphere

using lines. Eg find a point and draw to next point. I would have to use sphereical to cartesian coordinate math..I think. Can anyone help?????

Elefagente Secreto

01-30-2006, 09:37 AM

Originally posted by Stan Swank II:

Hello Everyone;

I am trying to write a program to draw a sphere

using lines. Eg find a point and draw to next point. I would have to use sphereical to cartesian coordinate math..I think. Can anyone help?????I found this code... haven't tried it myself but hope it helps. It's from a demo in NVIDIA website if I remember correctly.

#define DTOR (M_PI/180.0)

static void

vert(float theta, float phi)

{

float r = 0.75f;

float x, y, z, nx, ny, nz;

nx = sin(DTOR * theta) * cos(DTOR * phi);

ny = sin(DTOR * phi);

nz = cos(DTOR * theta) * cos(DTOR * phi);

glNormal3f(nx, ny, nz);

x = r * sin(DTOR * theta) * cos(DTOR * phi);

y = r * sin(DTOR * phi);

z = -ZTRANS + r * cos(DTOR * theta) * cos(DTOR * phi);

glVertex4f(x, y, z, 1.0);

}

static void

DrawSphere(float del)

{

float phi, phi2, theta;

glColor4f(1.0, 1.0, 1.0, 1.0);

for (phi = -90.0f; phi < 90.0f; phi += del) {

glBegin(GL_TRIANGLE_STRIP);

phi2 = phi + del;

for (theta = -90.0f; theta <= 90.0f; theta += del) {

vert(theta, phi);

vert(theta, phi2);

}

glEnd();

}

}

Stan Swank II

01-30-2006, 11:51 AM

This code does not work.. I put it in a program and there was no output

Stan Swank II

01-30-2006, 06:44 PM

Sorry I lied I could use Quads If needed.

dorbie

02-01-2006, 12:19 PM

Make a cube centered around the origin, subdivide the cube faces. Normalize each vertex (as a vector from the origin).

The results is the normal and vertex of a unit radius sphere. Duplicate for separate normals and then scale the vertices to the desired sphere size and translate to the desired location.

Draw the data with vertices and normals.

This approach is better behaved than polar coordinates.

You could start with another platonic solid and you could subdivide and normalize recursively for more even spacing, but that's a subtle refinement and a cube is easy.

dorbie

02-01-2006, 12:32 PM

P.S. if you want to subsequently texture the sphere an octahedron may be a better starting point, but subdivision would obviously have to be triangular.

Powered by vBulletin® Version 4.2.2 Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.