2021年3月24日 星期三

熊貓大人到此一遊 week05

 #include <GL/glut.h>///使用glut外掛


int N=0,vx[3000],vy[3000];///放點3000個

float angle=0;///初始角度


void display()


{


    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();///交換兩倍的buffers


}

void keyboard(unsigned char key,int x,int y)

{

    angle++;

    display();

}


void motion(int x,int y)///x座標,y座標


{


    vx[N]=x,vy[N]=y;///把vx vy值存起來


    N++;


    display();///邊動mouse motion 邊畫display


}


int main(int argc,char**argv)///glut初始設定


{


    glutInit(&argc,argv);


    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);///顯示模式


    glutCreateWindow("WEEK04");///視窗


    glutDisplayFunc(display);///顯示的函示

    glutKeyboardFunc(keyboard);///按按鍵 就會轉動


    glutMotionFunc(motion);///mouse motion在動


    glutMainLoop();///主要迴圈


}














可以旋轉~~~~~~





沒有留言:

張貼留言

距地表面160 Week11

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