2019年4月26日 星期五

week10

1.複習移動選轉縮放

網址:http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
(1)到上面網址下載:data 、win32 glut.32dll source
重複之前的步驟:解壓縮windows.zip->拉data進windows ->複製glut32.dll ->貼上

(2)開啟Transformation


下往上看(物體自轉)

按右鍵可將上面兩行交換
如果Translatef和Rotatef交換位有什麼影響呢?

下往上看(物體公轉)

2.做出圓錐體的尖端對準茶壺口轉動:


把茶壺程式碼的Solid改成Wire就會從實心網狀



程式碼:
#include <GL/glut.h> float angle=0; void display() { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glPushMatrix();///備份矩陣,保護好 glTranslatef(0,0.5,0); glutWireTeapot(0.3); glPopMatrix();///還原矩陣保護好 glPushMatrix(); glTranslatef(0.51,0.63,0);///(3)希望把會動的手從肚臍移到茶壺上 glRotatef(angle,0,0,1);///(1)這是手的旋轉 glTranslatef(0.6,0,0);///(2)這是把選轉中心(肩)先移到畫面的中心(肚臍) glRotatef(-90,0,1,0); glutWireCone(0.1,0.6,10,10); glPopMatrix(); glutSwapBuffers(); } void motion(int x, int y) { angle=x; display(); } int main(int argc, char**argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("translate"); glutDisplayFunc(display); glutMotionFunc(motion); glutMainLoop(); }


沒有留言:

張貼留言