電腦圖學2019-03-14
(1)主題:移動(2)示範:glTranslatef(x,y,z)
首先我們要先到網站小葉的網站,去下載三個東西
[data][win32][glut32.dll]
把data和win32解壓縮放到資料夾
之後開啟Transformation.exe
glTranslatef >>>(控制X,Y,Z方位 )
glRotatef >>>(控制車的角度 )
glScalef >>>(控制車子的長扁寬 )
對程式按右鍵可以更改物品哦!
之後要去網站下載Download freeglut 3.0.0 for MinGW
打開codeblocks就可以完成
之後要在main.cpp刪除舊程式碼打出新程式碼。
#include <GL/glut.h>
void display()
{
glPushMatrix();
glTranslatef(0.3,0.3,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutMainLoop();
}
可以得到大茶壺
之後要改成可以用滑鼠拖曳茶壺,所以更改程式碼
#include <GL/glut.h>
float x=0, y=0;///滑鼠的拖曳
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef((x-150)/150.0,-(y-150)/150.0,0);
glutSolidTeapot(0.3);
glPopMatrix();///不會有舊的殘影///還原矩陣
glutSwapBuffers();
}
void motion(int nowX, int nowY)///滑鼠拖曳
{
x=nowX; y=nowY;
display();///滑鼠更新
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week04renrenfu");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
}
成功做出可以滑鼠拖曳的茶壺!!!
沒有留言:
張貼留言