2017年3月13日 星期一

圖學Note CCL week 04 GLUT(畫圓形、滑鼠事件改變顏色)


#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
void mouse(int button, int state, int x, int y)///滑鼠函式///
{
    printf("%d %d %d %d\n",button,state,x,y);
    glColor3f(1,x/300.0,y/300.0);
    glutPostRedisplay();
}
void motion(int x,int y)///滑鼠移動函式
{
    printf("%d %d\n",x,y);
    glClearColor(1,y/300.0,x/300.0,0.0);
    glutPostRedisplay();
}
///使用高級的GLUT使用工具者
static void display(void)///用來顯示
{
    //glClearColor(1.0, 1.0, 0.0,0.0);///背景顏色
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///畫背景
    glBegin(GL_POLYGON);

        for(float angle=0;angle<3.14159*2;angle+=0.001)
        {
            glVertex2f(cos(angle),sin(angle));
        }
    glEnd();
    glutSwapBuffers();///最後要顯示,有始有終
}
int main(int argc, char *argv[])///主函式
{
    glutInit(&argc, argv);///GLUT初始化
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    ///要開始顯示DISPLAY的模式
    glutCreateWindow("HI YAYAYA");                                                開一個視窗
    glutDisplayFunc(display);///                                                             DISPLAY函式
    glutMouseFunc(mouse);                                                                   滑鼠函式
    glutMotionFunc(motion);                                                                 滑鼠移動函式
    glutMainLoop();

}

沒有留言:

張貼留言