2023年2月22日 星期三

CodeTalker week02

STEP 01 

1.file>new>project>GLUT

2.2022葉正聖老師上課軟體>freeglut-MinGW-3.0.0-1.mp.zip>freelut複製去桌面>lib>複製libfreeglut.a>貼上改檔名libglut32.a後即可在codeblock開啟

3.經過一連串複製貼上程式碼得到:

#include <GL/glut.h>  畫茶壺

void display()

{

glutSolidTeapot( 0,3 );

glutSwapBuffers();

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

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);

glutMainLoop();

}

即可得到一個預設顏色的茶壺

STEP02

1.在畫茶壺前的那串程式碼前加上glColor3f(r,g,b);可調整茶壺的顏色

2.更改glutSolidTeapot( 0,X )的X數值,可調整茶壺大小


STEP03

1.想要做一個三角形,利用畫多邊形並給予頂點的方式,三角形有三個頂點,因此加入:

glBegin(GL_POLYGON);

        glVertex2f(0, 1);

        glVertex2f(-1,-1);

        glVertex2f(1,-1);

最後要告訴它什麼時候停止,所以給它結尾加一個glEnd();

亦可用glColor3f(r,g,b);幫三角形加上顏色

2.單一顏色的三角形有點單調,跟之前看到的漂亮三角形不一樣,所以我們在三角形每個頂點的程式碼前面加上不同顏色,即可獲得五彩繽紛的三角形

STEP04

做四邊形的背景,顏色可用小畫家的滴管功能+參考圖片,使用程式碼:

glColor3f(247/255.0,247/255.0,247/255.0);

    glBegin(GL_POLYGON);

        glVertex2f(1, 1);

        glVertex2f(-1, 1);

        glVertex2f(-1,-1);

        glVertex2f(1,-1);

    glEnd();

用公式換算顏色並填滿四個頂點


STEP05

利用sin cos畫圓形

#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.14145926;a+=0.01){

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

    }

    glEnd();

}

void display()

{

    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);

    glColor3f(1,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("GLUT Shapes");

glutDisplayFunc(display);

glutMainLoop();

}



沒有留言:

張貼留言