2023年2月22日 星期三

vicky_week02_點線面色彩(茶壺練習)

 #Week02-1

 Step01   打開 "2022葉正聖老師上課軟體"資料夾裡面的"freeglut-MinGW-3.0.0-1.mp.zip"

                將裡面的freeglut資料夾拉到桌面上

Step02 libfreeglut.a複製改檔名成 libglut32.a


Step03 打開File - New - Project  點選GLUT project 

        點選... 選擇桌面 ,再修改檔名,按Next,按完成


Step04 用十行程式化一個茶壺

程式碼:
#include <GL/glut.h>
void display()
{
    glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3(這一行原創的,其他行都是複製來的)
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化)
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    ///上面這行是把顯示的模式設定好
    glutCreateWindow("GLUT Shapes"); ///要開視窗
    glutDisplayFunc(display); ///要顯示的對應函式
    glutMainLoop(); ///最後用main迴圈,壓在最後面
}

step05 加glColor.f(r,g,b);   來更改顏色


程式碼:

#include <GL/glut.h>
void display()
{
    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv); ///把GLUT開起來 (GLUT初始化)
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    ///上面這行是把顯示的模式設定好
    glutCreateWindow("GLUT Shapes"); ///要開視窗
    glutDisplayFunc(display); ///要顯示的對應函式
    glutMainLoop(); ///最後用main迴圈,壓在最後面
}

step06 加綠色進去,調整大小


   

程式碼:

#include <GL/glut.h>
void display()
{
    glColor3f(0,1,0);///綠色
    ///glutSolidTeapot(0.5);
    glBegin(GL_POLYGON);///開始畫
        glColor3f(1,0,0);  glVertex2f( 0, 1);///紅色頂點Vertex
        glColor3f(0,1,0);  glVertex2f(-1,-1);///綠色頂點Vertex
        glColor3f(0,0,1);  glVertex2f( 1,-1);///藍色頂點Vertex
    glEnd();///結束畫

    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3(這一行原創的,其他行都是複製來的)
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}


step07 新增開始畫  glBegin(GL_POLYGON)結束畫 glEnd()

    

step08 頂點glVertex2f(x,y)


程式碼:
#include <GL/glut.h>
void display()
{
    ///glColor3f(0,1,0);///綠色
///glutSolidTeapot(0.5);///畫出一個實心的茶壺,它的大小是0.5
    glBegin(GL_POLYGON);///開始畫出多邊形
        glVertex2f( 0, 1);///頂點 Vertex
        glVertex2f(-1,-1);///頂點 Vertex
        glVertex2f(+1,-1);///頂點 Vertex
    glEnd();///結束畫

glColor3f(1,1,0);///黃色
glutSolidTeapot(0.3);///畫出一個實心的茶壺,它的大小是0.3
glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{ ///上面是特別的main函式,有很多參數
glutInit(&argc, argv);///把GLUT開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///把顯示的模式設定好
glutCreateWindow("GLUT Shapes");///要開視窗
glutDisplayFunc(display);///要顯示的對應函式
glutMainLoop();///最後用main迴圈,壓在最後面
}
    

step09 按下播放鍵 三角形出來了

Week02-2

    step01 將每個頂點加上顏色,按下播放鍵




程式碼:
#include <GL/glut.h>
void display()
{
    glColor3f(0,1,0);///綠色
    ///glutSolidTeapot(0.5);
    glBegin(GL_POLYGON);///開始畫
        glColor3f(1,0,0);  glVertex2f( 0, 1);///紅色頂點Vertex
        glColor3f(0,1,0);  glVertex2f(-1,-1);///綠色頂點Vertex
        glColor3f(0,0,1);  glVertex2f( 1,-1);///藍色頂點Vertex
    glEnd();///結束畫

    glColor3f(1,1,0);///黃色
    glutSolidTeapot(0.3);///畫出一個實心茶壺,它的大小0.3
    glutSwapBuffers();///請GLUT把畫面swap送到顯示的地方
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}

Week02-3畫皮卡丘

  • 上網找皮卡丘的圖
  • 截圖至小畫家
  • 設定成200x200的圖
  • 左下角可看座標
  • 再換算一下
  • 色彩可用滴管吸,編輯色彩
  • 換算色彩法:除以255.0
  • 座標位置口訣:減一半、除一半、y變負號


Week02-4畫出圓形

Step01 先用小畫家大致描繪出來


Step02 用for迴圈   "for(float a = 0; a<3.1415926; a+=0.01)"寫出半圓


Step03 要畫出一個圓(把兩個半圓拚在一起)   "a<2*3.1415926"


Step04 再用cos() sin()畫出一個圓



1. 開始畫  glBegin(GL_POLYGON)

2. 結束畫 glEnd()

3. 畫頂點 用 glVertex2f(x,y)

成果展示!!!👇









沒有留言:

張貼留言