坐在球体上观看

时间:2014-04-28 14:28:48

标签: jogl viewing

在我的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));
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果你想要正确而完整地看到它,你的物体必须完全位于你的视锥体内。修改(透视或正交)投影矩阵以使其工作。我提醒你,使用JOGL 2需要真正了解OpenGL的基础知识。