2021年3月16日 星期二

gg

課程內容:

 1.先做一個茶壺:










#include <GL/glut.h>  ///使用GLUT外掛
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清空
    glutSolidTeapot(0.3);
    glutSwapBuffers();   ///交換兩倍的buffers
}
int main(int argc,char ** argv)
{
    glutInit(&argc,argv);    ///GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///顯示模式
    glutCreateWindow("08160112");   ///開窗
    glutDisplayFunc(display);   ///等一下要顯示的函示
    glutMainLoop();   ///主要迴圈
}

2.滑鼠:








#include <GL/glut.h>  ///使用GLUT外掛
#include <stdio.h>
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)
{
    printf("button:%d state:%d x:%d                     
    y:%d\n",button,state,x,y);
}

int main(int argc,char ** argv)
{
    glutInit(&argc,argv);    ///GLUT初始設定
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); ///顯示模式
    glutCreateWindow("08160112");   ///開窗
    glutDisplayFunc(display);   ///diaplay顯示的函式
    glutMouseFunc(mouse);  ///mouse滑鼠的程式
    glutMainLoop();   ///主要迴圈
}

3.用座標表示水壺:










#include<GL/glut.h>
#include<stdio.h>
float teapotX=0,teapotY=0;
void display()

{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(teapotX,teapotY,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glEnd();
    glutSwapBuffers();

}
void motion(int x,int y)
{
    teapotX = (x-150)/150.0;
    teapotY = -(y-150)/150.;
    display();
}
int main(int argc, char ** argv)

{

    glutInit( &argc, argv);

    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160112");

    glutDisplayFunc(display);

    glutMainLoop();

}



沒有留言:

張貼留言

Week18期末作業(橘貓的跳舞熊熊)

 期末作業(橘貓的跳舞熊熊) 影片: https://youtu.be/R89tptMaQZw 程式碼: #include <opencv/highgui.h> #include <opencv/cv.h> #include <GL/glut.h...