2021年3月10日 星期三

小乖的圖學筆記 week03

1.註冊GitHub帳號

2.新增GitHub專案倉庫

2-1

2-2

2-3

3.創建一個Open GL專案(week01有)

4.上傳至GitHub

4-1

4-2

5.再創建一個GLUT專案(week01有)

與步驟3.一樣

6.上傳至GitHub

與步驟4.一樣

------------------------------------------------------------------------------------------

畫圓形

方法1

1.複製程式碼

#include <GL/glut.h>///使用GLUT外掛

static void display(void)

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景

    glutSolidTeapot(0.5);///畫茶壺

    glutSwapBuffers();///更新畫面

}

int main(int argc, char *argv[])///main()函式

{

    glutInit(&argc, argv);///Init初始化GLUT

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///Init初始化Display功能

    glutCreateWindow("07160325 小乖的茶壺");///建立自訂名稱的GLUT視窗

    glutDisplayFunc(display);///準備display()函式

    glutMainLoop();///主要函式

}

2.在display()加上glutSolidSphere(r,d,30),r=半徑,d=頂點數

static void display(void)

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清背景

    glColor3f(1,0,0);//畫紅色

    glutSolidSphere(0.5,30,10);///畫圓形方法1

    glutSwapBuffers();//更新畫面

}

------------------------------------------------------------------------------------------

方法2

1.複製程式碼

#include <GL/glut.h>///使用GLUT外掛

static void display(void)

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景

    glutSolidTeapot(0.5);///畫茶壺

    glutSwapBuffers();///更新畫面

}

int main(int argc, char *argv[])///main()函式

{

    glutInit(&argc, argv);///Init初始化GLUT

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///Init初始化Display功能

    glutCreateWindow("07160325 小乖的茶壺");///建立自訂名稱的GLUT視窗

    glutDisplayFunc(display);///準備display()函式

    glutMainLoop();///主要函式

}

2.在display()加上

glBegin(GL_POLYGON);///開始畫

    for(int i=0;i<30;i++)///畫圓形方法2

    {

        float a=3.1415926535897832384626*2/30*i;

        glVertex2f(cos(a),sin(a));///cos,sin前面可以*倍率或+-位移

    }

    glEnd();///結束畫

------------------------------------------------------------------------------------------
做自己的GitHub網站
1.網址:自己帳號.github.io
2.至GitHub下開同名專案
3.把main branch設定成gh-pages
4.README可以改內容
下周補詳細圖文教學
hackmd.io/@jsyeh裡面有教學

沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...