2023年2月23日 星期四

霈week02




week02-1 

依照上週方法開啟GLUT



從原始檔案中剪貼出幾行程式碼執行



執行出一個沒有顏色茶壺



加一行可以增加色彩的程式碼先設定茶壺為黃色


再設定成綠色




把視窗名字改成week02



跑出來的結果是有黃色根綠色的茶壺




改一下上面的程式碼,增加了x,y,z軸



跑出來的茶壺是黃色跟綠色的三角形



#include <GL/glut.h>

void display()

{

glBegin(GL_POLYGON);

        glColor3f(1,0,0); glVertex2f(0,1);把前面的Vertex 改成Color再增加X,Y軸

        glColor3f(0,1,0); glVertex2f(-1,-1);

        glColor3f(0,0,1); glVertex2f(+1,-1);

    glEnd();


glColor3f(1,1,0);

glutSolidTeapot( 0.3 );

glutSwapBuffers();

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("week02");

glutDisplayFunc(display);

glutMainLoop();

}







利用數學公式可知圓形是3.141592可是一個只有半圓形所以要*2才會有一個圓形,再利用cos=X,sin=Y帶入程式中,再輸入周圍四個點的位置

#include <GL/glut.h>

#include <math.h>

void myCircle(float r, float x, float y)

{

    glBegin(GL_POLYGON);

    for(float a=0; a<=2*3.141592; a+=0.01){

        glVertex2f( r*cos(a)+x, r*sin(a)+y );

    }

    glEnd();

}

void display()

{

    glColor3f( 233/255.0, 141/255.0, 128/255.0);

    myCircle(0.5, 0, 0);


    glColor3f(1,1,0);

    myCircle(0.3, 0.5, 0.5);


    glColor3f(1,0,0);

    myCircle(0.3, -0.5, 0.5);


    glColor3f(0,1,0);

    myCircle(0.3, -0.5, -0.5);


    glColor3f(0,0,1);

    myCircle(0.3, 0.5, -0.5);


    glutSwapBuffers();

}


int main(int argc, char * argv[] )

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week02");


    glutDisplayFunc(display);


    glutMainLoop();

}







沒有留言:

張貼留言