2023年2月22日 星期三

chiche_week02

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

Step01   

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

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

 

Step02

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

打開File - New - Project  點選GLUT project 

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

Step03

 用程式畫出一個茶壺

 

程式碼:

#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迴圈,壓在最後面
}

step04

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迴圈,壓在最後面
}

step05

 加綠色進去,調整大小

   

程式碼:

#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();
}


step06

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

step07

    

 頂點 用 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迴圈,壓在最後面
}
    

step08


 按下播放鍵

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)







沒有留言:

張貼留言