2021年3月24日 星期三

倫 電腦圖學 week05

 


Translate 位置

Rotate 旋轉

Scale 高矮胖瘦

Begin 物體


旋轉 和 位置 交換

--------------------------------------------

* 旋轉 和 位置  關係 EX:

Rotate 旋轉

Translate 位置

Scale 高矮胖瘦

Begin 車子

旋轉 (右邊的 胖的 車子)   //像轉盤大旋轉


Translate 位置

Rotate 旋轉

Scale 高矮胖瘦

Begin 車子

右邊的 (旋轉 胖的 車子) //原地轉動

-------------------------------------------------


可以用鍵盤控制讓它旋轉!!




#include <GL/glut.h>


int N=0,vx[3000],vy[3000];


float angle=0;


void display()


{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glPushMatrix();

    glRotatef(angle,0,0,1);


    glBegin(GL_LINE_LOOP);


    for(int i=0;i<N;i++){


    glVertex2f((vx[i]-150)/150.0,-(vy[i]-150)/150.0);


    }


    glEnd();


    glutSwapBuffers();


}

void keyboard(unsigned char kay,int x,int y){

    angle++;

    display();

}

void motion(int x, int y)


{


    vx[N]=x;vy[N]=y;


    N++;


    display();


}


int main(int argc, char **argv)


{


    glutInit(&argc, argv);


    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);


    glutCreateWindow("08160315");


    glutDisplayFunc(display);


    glutKeyboardFunc(keyboard);


    glutMotionFunc(motion);


    glutMainLoop();


}


沒有留言:

張貼留言

距地表面160 Week11

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