Просмотр сидя на сфере

В моей программе JOGL у меня есть объект в (0,0,0). Я использую сферические координаты для изменения углов тета (наклон) и фи (вращение), чтобы увидеть мой объект в начале координат. Но я не могу правильно его просмотреть. Иногда объект становится невидимым под некоторыми углами, и я не могу смотреть со всех сторон. Вот мой код:

void decTheta() 
{        
    theta--;
    ex = distance*Math.sin(Math.toRadians(theta))*Math.cos(Math.toRadians(phi));
    ez = distance*Math.sin(Math.toRadians(theta))*Math.sin(Math.toRadians(phi));
    ey = distance*Math.cos(Math.toRadians(theta));
}

void incTheta()
{
    theta++;
    ex = distance*Math.sin(Math.toRadians(theta))*Math.cos(Math.toRadians(phi));
    ez = distance*Math.sin(Math.toRadians(theta))*Math.sin(Math.toRadians(phi));
    ey = distance*Math.cos(Math.toRadians(theta));
}

void incPhi() 
{
    phi++;    
    ex = distance*Math.sin(Math.toRadians(theta))*Math.cos(Math.toRadians(phi));
    ez = distance*Math.sin(Math.toRadians(theta))*Math.sin(Math.toRadians(phi));
    ey = distance*Math.cos(Math.toRadians(theta));
}

void decPhi() 
{
    phi--;
    ex = distance*Math.sin(Math.toRadians(theta))*Math.cos(Math.toRadians(phi));
    ez = distance*Math.sin(Math.toRadians(theta))*Math.sin(Math.toRadians(phi));
    ey = distance*Math.cos(Math.toRadians(theta));
}

Что я делаю неправильно?

1 ответ

Ваш объект должен быть полностью внутри вашего усеченного конуса, если вы хотите видеть его правильно и полностью. Измените вашу (перспективную или ортогональную) матрицу проекции, чтобы она работала. Напоминаю, что использование JOGL 2 требует реального понимания основ OpenGL.

Другие вопросы по тегам