3D视图中的GL_LINE_LOOP,openGL C ++

时间:2013-03-14 19:08:38

标签: c++ opengl

我正在制作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视图?

2 个答案:

答案 0 :(得分:1)

如果您要查找的是在3D坐标空间中创建顶点,则应使用:glVertex3dglVertex3f。请注意,这些函数有3个参数,第一个参数是double中顶点的xyz坐标,第二个参数是float

在您的轨道代码中,您应该生成一个额外的z坐标以及您正在计算的xy坐标。

答案 1 :(得分:0)

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

设置3D窗口进行渲染后,设置模型视图矩阵以旋转轨道。

如果你真的想要创建点并将它们存储在旋转位置,你可以使用模型矩阵乘以你的3d变换点中的点数。