используя сферические координаты в opengl - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь нанести точки вокруг центральной точки, используя сферические координаты. Я знаю, что это далеко не самый эффективный способ построения сферы в OpenGL, но я хочу сделать это как пример для лучшего понимания сферических координат.

Я хочу пройти каждую точку под определенным углом, чтобы для этого у меня есть вложенное значение для l oop, проходящее через тета 0 - 360 и фи 0-360, и я пытаюсь получить декартовы координаты каждого из этих шагов и отобразить его как одну точку.

пока у меня есть это:

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);
    }
}

Я храню эти точки, отображая их. функция отображения работает нормально, так как раньше я использовал ее для отображения другой структуры точек, но по какой-то причине я не могу заставить это работать.

Я также пытался преобразовать углы из градусов в радианы:

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

, поскольку sin() и cos() оба используют радианы, но это дает одинаковые результаты.

Я делаю что-то не так и плохо что-то неправильно понимаю?

1 Ответ

0 голосов
/ 19 апреля 2020

При пересчете из градусов в радианы угла x правильная формула будет x * M_PI / 180..

...