2.把 [window] 檔案開啟並合併[data] [gult32.dll] 檔案到裡面。.
3.開啟GLUT專案,輸入上周的程式碼,新增:glTranlatef(0,0,0);,使茶壺可以改變座標位置
4.新增motion程式碼,滑鼠拖曳可移動茶壺
程式碼:#include <GL/glut.h>
float mouseX=0, mouseY=0;///x、y座標數值設定
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(mouseX,mouseY,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void motion(int x, int y)
{
mouseX = (x-150)/150.0;///滑鼠座標修正
mouseY = -(y-150)/150.0;
glutPostRedisplay();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("04160585's model");
glutMotionFunc(motion);
glutDisplayFunc(display);
glutMainLoop();
}
程式碼:
#include <GL/glut.h>
float mouseX=0, mouseY=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glScalef(mouseX,mouseY,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void motion(int x, int y)
{
mouseX = (x-150)/150.0;/// x/300.0
mouseY = -(y-150)/150.0;/// y/300.0
glutPostRedisplay();///貼個便利貼 Post便利貼,告訴GLUT
///要重畫畫面 Re-display
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("04162664 Translate Rotate Scale");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}




沒有留言:
張貼留言