· 課堂範例:https://jsyeh.org/3dcg10/
1、下載win32以及data的範例檔案,解壓縮
2、將data資料夾移動到window資料夾中
3、點開Transformation.exe
4、右鍵可更換模型
·Rotation旋轉
1、安培右手定則 判斷旋轉位置
·實作
1、利用上週的基本程式碼,插入函式來轉動茶壺
2、mouse motion 加入mouse互動,旋轉滑鼠,茶壺會跟著旋轉
3、改良上個程式
4、複習mouse程式&GL_LINE_LOOP
5、改良上個程式,把mouse函式改成motion函式,可利用滑鼠連續畫線
#include<stdio.h> #include <GL/glut.h> int N=0; int x[1000],y[1000]; void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_LINE_LOOP); for(int i=0;i<N;i++){ glVertex2f((x[i]-150)/150.0,-(y[i]-150)/150.0); } glEnd(); glutSwapBuffers(); } void motion(int mouseX,int mouseY) { N++; x[N-1]=mouseX; y[N-1]=mouseY; printf("現在按下滑鼠,得到新座標 %d %d\n",x[N-1],y[N-1]); display(); } int main(int argc,char** argv) { glutInit(&argc,argv); glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); glutCreateWindow("week05 mouse Motion"); glutDisplayFunc( display ); glutMotionFunc(motion); glutMainLoop(); }









沒有留言:
張貼留言