2021年3月24日 星期三

今天沒想法

 

今天剛上課因為人數太少所以老師介紹了萬花尺http://jsyeh.org/processing/spirograph/

有點酷。


=========================================================================

今天第一個教的東西是上次上課的內容

(r是重設,s是交換第一行和第二行程式碼)








把Rotate那行放最上面就可以按空白見旋轉圖形了





=========================================================================




這是期中考考題的一部分




=========================================================================


老師用了上一堂課的程式碼(畫線的)來示範如何讓圖形轉動

按住空白鍵就可以轉動了!!



程式碼 :

#include <GL/glut.h>

int N=0,vx[3000],vy[3000]; float angle=0;///TODO void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空 glPushMatrix();///TODO: 備份矩陣 glRotated(angle,0,0,1);///TODO: 旋轉,對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();///TODO: 還原矩陣 glutSwapBuffers();///交換兩倍的buffers } void keyboard(unsigned char key,int x,int y) { angle++;///TODO: display();///TODO: } void motion (int x ,int y) { ///TODO2: mouse motion 再拖動他 vx[N]=x; vy[N]=y; ///把vx,vy的存起來 N++; display();///邊動mouse motion,邊畫display() } int main(int argc, char *argv[]) { glutInit(&argc, argv);///(1)GLUT初始設定 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)顯示模式 glutCreateWindow("08160830");///(3)開視窗 glutDisplayFunc(display);///(4)等一下要顯示的函式 glutKeyboardFunc(keyboard);///TODO:按按鍵,他就會轉動!!!!!!!!! glutMotionFunc( motion);///等一下要顯示的函示 glutMainLoop();///TODO :我們註冊mouse函式 }






沒有留言:

張貼留言

距地表面160 Week11

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