在我的JOGL程序中,我有一个对象(0,0,0)。我使用球面坐标来修改角度θ(倾斜度)和phi(旋转)以在原点查看我的对象。但我无法正确查看它。有时物体在某些角度变得不可见,我无法从各个角度观察。这是我的代码:
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));
}
我做错了什么?
答案 0 :(得分:0)
如果你想要正确而完整地看到它,你的物体必须完全位于你的视锥体内。修改(透视或正交)投影矩阵以使其工作。我提醒你,使用JOGL 2需要真正了解OpenGL的基础知识。