0
votes

I am trying to plot points around a center point using spherical coordinates. I know this is by far not the most efficient way to plot a sphere in OpenGL but i want to do it as an excersive to understand spherical coordinates better.

I want to step through each point by a certain angle so for this i have a nested for loop itterating through theta 0 - 360 and phi 0-360 and i am attempting to get the Cartesian coordinates of each of these steps and display it as a single point.

so far i have this:

float r = 1.0;
for( float theta = 0.0; theta < 360.0; theta += 10.0){
    for(float phi = 0.0; phi < 360.0; phi += 10.0){

        float x = r * sin(theta) * cos(phi);
        float y = r * sin(theta) * sin(phi);
        float z = r * cos(theta);
    }
}

i store these points a display them. the display function works fine as i have used it to display other point structure before but for some reason i can't get this to work.

I have also tried converting the angles from degrees to radians:

float rTheta = theta * M_PI * 180.0;
float rPhi = phi * M_PI * 18.0;

as sin() and cos() both use radians but it yields the same results.

Am i doing something wrong and badly misunderstanding something?

1

1 Answers

0
votes

In the conversion from degrees to radians of angle x, the correct formula is x * M_PI / 180..