-1

我正在制作一个 3D 太阳系,我需要在 3D 视图中查看 2D 圆,这实际上是行星在其上移动的轨道。

glBegin(GL_LINE_LOOP);
for(int i =0; i <= 300; i++)
{
    double angle = 2 * 3.1416 * i / 300;
    double x = .12 * cos(angle);
    double y = .12 * sin(angle);
    glVertex2d(x,y);
    glColor3f(1,1,1);
}
glEnd();

这是我用于查看 Orbit 的代码。如何在 openGL C++ 中将其设为 3D 视图?

4

2 回答 2

1

如果您正在寻找的是在 3D 坐标空间中创建顶点,那么您应该使用:glVertex3dglVertex3f. double请注意,这些函数采用 3 个参数,第一个参数是顶点的 xyz 坐标,float第二个参数是 in。

在您的轨道代码中,您应该生成一个额外的z坐标以及您已经在计算的x和坐标。y

于 2013-03-14T19:17:42.783 回答
0

这是一个非常广泛的问题。我建议你看看NeHe 教程

设置好要渲染的 3D 窗口后,将模型视图矩阵设置为旋转轨道。

如果您真的想创建点并将它们存储在旋转位置,您可以使用模型矩阵通过以 3d 转换点结束来将点相乘。

于 2013-03-14T19:20:10.280 回答