2016年3月14日 星期一

[表特]資傳猷騰

作業02


用滑鼠方法 直接印出座標

程式碼:

#include<GL/glut.h>
#include <stdio.h>
void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)printf("   glVertex2f((%d-150)/150.0,(%d-150)/150.0);\n",x,y);
}
void display()
{
    glClearColor( 150/255.0 , 170/255.0 , 55/255.0 , 1);
    glClear(GL_COLOR_BUFFER_BIT);

    glBegin(GL_POLYGON);
        glColor3f(1,1,0);
        glVertex2f(0.5,0.5);
        glVertex2f(0.5,-0.5);
        glVertex2f(0,0);
    glEnd();
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("hello");
    glutMouseFunc(mouse);
    glutDisplayFunc(display);
    glutMainLoop();
}


作業03



用程式畫圓形

程式碼:
#include<GL/glut.h>
#include <stdio.h>
#include <math.h>
void mouse(int button,int state,int x,int y)
{
    if(state==GLUT_DOWN)printf("   glVertex2f((%d-150)/150.0,(%d-150)/150.0);\n",x,y);
}
void display()
{
    glClearColor( 150/255.0 , 170/255.0 , 55/255.0 , 1);
    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
        glTranslatef(0, 0.5, 0);  //移動
        glBegin(GL_POLYGON);
        for(float angle=0; angle<3.141592653 *2; angle+= 0.1)
            {
                glVertex2f( 0.2*cos(angle), 0.2*sin(angle) );
            }
        glEnd();
        glPopMatrix();  // 儲存備份
        glPushMatrix();  // 下次會再教
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("hello");
    glutMouseFunc(mouse);
    glutDisplayFunc(display);
    glutMainLoop();
}

補充01


沒有留言:

張貼留言