現在地 >> メニュー >> サンプルコード::OpenGL >> 透視投影と視点

問題


gluライブラリを用いて、
視体積、視点を決定し、3次元空間を構築し、
xyz軸を作成せよ。

なお
 x軸:緑
 y軸:赤
 z軸;青
と色を変えよ。

答え


#include <cstdio>
#include <GL/glut.h>
#include <GL/glu.h>

void display();
void reshape(int w, int h);

void DRAW_XYZ();

using namespace std;

inline void GLUT_INIT()
{
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(200,200);;
}

inline void GLUT_CALL_FUNC()
{
glutDisplayFunc(display);
glutReshapeFunc(reshape);
}

inline void MY_INIT()
{
glClearColor(1.0, 1.0, 1.0, 1.0);
}

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

glutInit(&argc,argv);

GLUT_INIT();

glutCreateWindow("window name");

GLUT_CALL_FUNC();

MY_INIT();

glutMainLoop();

return 0;
}

/********[ここからコールバック]****************************************/
void display()
{
glClear(GL_COLOR_BUFFER_BIT);

DRAW_XYZ();
glFlush();

}

void reshape(int w, int h)
{
glViewport(0, 0, w, h);

glLoadIdentity();
gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0);
gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

}

/**********[ここから各種関数]***********************/

void DRAW_XYZ()
{
glBegin(GL_LINES);

glColor3d(0,1,0);//x
glVertex2d(-100,0);
glVertex2d(100, 0);

glColor3d(1,0,0);//y
glVertex2d(0,0);
glVertex2d(0,100);

glColor3d(0,0,1);//z
glVertex3d(0,0,-100);
glVertex3d(0,0, 100);

glEnd();

}

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます