2021年3月24日 星期三

懶嵐\(。∀ ° )/ Week05

I.

使用小葉老師寫的transform.exe
觀察
glTranslatef(x,y,z)移動
glRotatef(x,y,z)旋轉
glScalef(x,y,z)改變大小

II.

Step1.

打開上禮拜滑鼠畫圖的程式碼
#include <GL/glut.h>///使用GLUT外掛 #include <math.h>///使用數學外掛 #include <stdio.h>///因為要printf int N=0,vx[3000],vy[3000]; float angle=0;///角度 void display(void) { glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);///清空 glPushMatrix();///備份矩陣 glRotatef(angle,0,0,1);///旋轉對z軸旋轉 glBegin(GL_LINE_LOOP); for(int i=0;i<N;i++){ glVertex2f((vx[i]-150)/150.0,-(vy[i]-150)/150.0); } ///減一半 除一半 glEnd(); glPopMatrix();///還原矩陣 glutSwapBuffers(); } void keyboard(unsigned char key, int x,int y) { angle++;///TODO display(); } void motion(int x,int y) { ///左,中,右,上,下,x座標,y座標 vx[N]=x; vy[N]=y; N++; display(); } int main(int argc, char *argv[ ])///main()函式 { glutInit(&argc, argv);///(1)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutKeyboardFunc(keyboard);///按按鍵才會動 glutMotionFunc(motion);///註冊motion函式 glutMainLoop();///(5)主要程式 }


沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...