1

好的,所以我试图通过绘制 6 个面来绘制一个立方体。

我通过给它两个向量来定义立方体本身的每个面。如下:

在此处输入图像描述

但是,现在我在如何在 openGL 中绘制这些面孔时遇到了麻烦(只是一个小提示,我使用的是 LWJGL,它是基于 openGL 构建的 java 库)。

我试图画出这些面孔,但我相信我有一个小错误,我似乎无法正确。目前,我尝试如下绘制面部:

public void render() {
    GL11.glBegin(GL11.GL_QUADS);
    GL11.glVertex3f(v2.x, v1.y, v1.z);
    GL11.glVertex3f(v1.x, v1.y, v1.z);
    GL11.glVertex3f(v1.x, v2.y, v2.z);
    GL11.glVertex3f(v2.x, v2.y, v2.z);
    GL11.glEnd();
}

但似乎在这里,只有顶面和底面被正确绘制,而侧面(左/右)面甚至不可见。

我怎样才能正确地绘制这些?

4

1 回答 1

2

2 个向量定义了无限的平行面。你需要一个额外的点X来选择其中一个,除非你的X = (0,0,0),这就是为什么它没有显示在你的代码中。

如果V1V2定义从参考点开始的面两侧的长度和方向,X则可以将四边形绘制为

GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex3f(X.x, X.y, X.z);
GL11.glVertex3f(X.x+v1.x, X.y+v1.y, X.z+v1.z);
GL11.glVertex3f(X.x+v1.x+v2.x, X.y+v1.y+v2.y, X.z+v1.z+v2.z);
GL11.glVertex3f(X.x+v2.x, X.y+v2.y, X.z+v2.z);
GL11.glEnd();
于 2013-07-01T21:41:55.430 回答