2021年3月17日 星期三

week04 加油

茶壺:

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

#include <stdio.h>///TODO:因為要printf 

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidTeapot(0.3);

    glutSwapBuffers();///交換兩倍的buffers

}

void mouse (int button,int state,int x,int y)

{///TODO:印出這些值 觀察一下

    printf("button:%d state :%d x:%d y:%d\n",button,state,x,y);

}

    int main (int argc,char** argv)

{

    glutInit(&argc,argv);///(1)GLUT的初始設定

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

    glutCreateWindow("08160191");///(3)開窗


    glutDisplayFunc(display);///(4)等一下要顯示的函式

    glutMouseFunc(mouse);///TODO:我們註冊的mouse 函式

    glutMainLoop();///(5)主要迴圈

}

 

自己畫:
#include <GL/glut.h>///使用GLUT 外掛
int N=0,vx[3000],vy[3000];
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空

    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 motion(int x,int y)
{
    vx[N]=x;vy[N]=y;
    N++;
    display();
}
    int main (int argc,char** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("08160191");

    glutDisplayFunc(display);
    glutMotionFunc( motion );
    glutMainLoop();
}
思考如何旋轉
P.S: 用安培右手定則的方式去思考




沒有留言:

張貼留言

距地表面160 Week11

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