3

次のコードを使用すると、グラフの右上隅に三角形が表示されます。これは、0,0 がウィンドウの中央にあることを示しています。ウィンドウの隅、つまり左下に表示するにはどうすればよいですか?

#include <GL/glut.h>
void displayCube()
{

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_TRIANGLES);
    glVertex3f(0, 0, 0);
    glVertex3f(0.5, 0, 0);
    glVertex3f(0.25, 0.25, 0);
glEnd();
glFlush();
}

int main(int argc, char *argv[]){

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("Cube");
glutDisplayFunc(displayCube);
glutMainLoop();
return 0;
}
4

1 に答える 1

1

OpenGL は一連の行列変換を使用して、元のモデル空間から画面/ウィンドウ空間に移動します。

あなたの例では、デフォルトの恒等射影があるため、各方向にボックス-1 から 1に「移動」しています。

ポイント(0.0, 0.0, 0.0)は真ん中。(-1, 0, 0)左側にあり(1, 0, 0)、右側に(0, 1, 0)あり、上にあります。

残りを把握してみてください:)

http://www.songho.ca/opengl/gl_transform.html

于 2013-02-06T09:53:16.317 に答える