到此網站:www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10
下載:data.zip, windows.zip, glut32.dll
課堂作業3: CodeBlocks 新增 GLUT專案, 安裝好 freeglut, 設定好 lib\libglut32.a , 剪貼上週 blog裡的程式碼, 變出茶壼
#include <GL/glut.h>
void display()
{
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int main(int argc, char *argv[])///也可以打**argv
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week02 ");
glutDisplayFunc(display);
glutMainLoop();
}

(1) 主題: Mouse函式
#include <GL/glut.h>///If apple GLUT/glut.h
#include <stdio.h>
void display()
{
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
void mouse(int button, int state, int x, int y)///TODO:mouse的函式
{
printf("%d %d %d %d\n", button, state, x, y);
}
int main(int argc, char *argv[])///也可以打**argv
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}

(2) 主題: Motion函式
#include <GL/glut.h>///If apple GLUT/glut.h
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f((127-150)/150.0, -(132-150)/150.0);
glEnd();
glutSwapBuffers();
}
void mouse(int button, int state, int x, int y)///TODO:mouse的函式
{
}
int main(int argc, char *argv[])///也可以打**argv
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
(3)主題: 移動 glTranslatef(x,y,z)
#include <GL/glut.h>///If apple GLUT/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();
glutSwapBuffers();
}
void mouse(int button, int state, int x, int y)///TODO:mouse的函式
{
teapotX= (x-150)/150.0;
teapotY= -(y-150)/150.0;
}
int main(int argc, char *argv[])///也可以打**argv
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}

沒有留言:
張貼留言