2018年3月12日 星期一

Week 03 潘家智的筆記

標準架構
#include <GL/glut.h>
void display()
{
 
}
int main(int argc,char**argv)
{
 
}



點線面顏色


#include <GL/glut.h>   使用glut外掛
void display()
{
    glClearColor(1,1,0,  1);  背景顏色
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(0,1,0);  標示顏色
    glutSolidTeapot(0.3);

    glutSwapBuffers();
}
#include <stdio.h>
void mouse(int button,int  state,int x,int y)
{
    if(state==GLUT_DOWN)printf("glVertex2f(%f,%f);\n",(x-150)/150.0,-(y-150)/150.0);
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);   初始化glut
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week03 mouse");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();  主要迴圈
}


#include <GL/glut.h>
float teapotX=0,teapotY=0; 茶壺位置一開始在0,0
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(teapotX,teapotY,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}
#include <stdio.h>
void mouse(int button,int  state,int x,int y)
{
    if(state==GLUT_DOWN)printf("glVertex2f(%f,%f);\n",(x-150)/150.0,-(y-150)/150.0);

}
void motion(int x,int y)
{
    teapotX=(x-150)/150.0;teapotY=-(y-150)/150.0; 把mouse位置設成滑鼠位置
    printf("%d %d\n",x,y); 印出移動數字
    glutPostRedisplay(); 重複貼上
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week03 mouse");

    glutDisplayFunc(display);等下準備 display
    glutMouseFunc(mouse); 準備滑鼠按鈕 mouse()功能
    glutMotionFunc(motion); 準備滑鼠移動 motion()功能
    glutMainLoop();
}

沒有留言:

張貼留言