課程內容:
1.先做一個茶壺:
#include <GL/glut.h> ///使用GLUT外掛
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glutSolidTeapot(0.3);
glutSwapBuffers(); ///交換兩倍的buffers
}
int main(int argc,char ** argv)
{
glutInit(&argc,argv); ///GLUT初始設定
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///顯示模式
glutCreateWindow("08160112"); ///開窗
glutDisplayFunc(display); ///等一下要顯示的函示
glutMainLoop(); ///主要迴圈
}
2.滑鼠:
#include <GL/glut.h> ///使用GLUT外掛
#include <stdio.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
glutSolidTeapot(0.3);
glutSwapBuffers(); ///交換兩倍的buffers
}
void mouse(int button,int state,int x,int y)
{
printf("button:%d state:%d x:%d
y:%d\n",button,state,x,y);
}
int main(int argc,char ** argv)
{
glutInit(&argc,argv); ///GLUT初始設定
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///顯示模式
glutCreateWindow("08160112"); ///開窗
glutDisplayFunc(display); ///diaplay顯示的函式
glutMouseFunc(mouse); ///mouse滑鼠的程式
glutMainLoop(); ///主要迴圈
}
3.用座標表示水壺:
#include<GL/glut.h>
#include<stdio.h>
float teapotX=0,teapotY=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(teapotX,teapotY,0);
glutSolidTeapot(0.3);
glPopMatrix();
glEnd();
glutSwapBuffers();
}
void motion(int x,int y)
{
teapotX = (x-150)/150.0;
teapotY = -(y-150)/150.;
display();
}
int main(int argc, char ** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("08160112");
glutDisplayFunc(display);
glutMainLoop();
}



沒有留言:
張貼留言