Part 1 了解argc和argv
1.先建立GLUT專案
2.將main.cpp裡的程式清除,輸入以下的程式碼
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
int main(int argc, char **argv)
///argc全名是argument count,用來表示輸入的參數數目
///argv全名是argument vector,用來儲存輸入的參數
{
for(int i=0; i<argc; i++)///有幾個參數
{
printf("%s\n", argv[i]);///參數的字串的值
}
}
3.將freeglut->bin->freeglut.dll複製
4.貼上在week02_mytrangle->bin->Debug
5.開啟命令字元,輸入cd C:\Users\user\Desktop\week02_mytrangle\bin\Debug按下Enter
接著輸入week02_mytrangle.exe 後面輸入字串,並會列出每一個字以及換行
Part2 畫茶壺
1.將main.cpp輸入以下程式碼
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///清畫面
glutSolidTeapot(0.3);///大小為0.3的茶壺
glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);///初始Initialize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///顯示模式:double buffers
glutCreateWindow("Week02 Hello World Triangle");///建立視窗
glutDisplayFunc(display);///顯示函式display()用來畫圖的
glutMainLoop();///主要的迴圈,用來控制程式
}
2.將茶壺塗上顏色
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///清畫面
glColor3f(1,0,0);///RGB調整茶壺的Color
///Color3f 3表示3個參數,f表示float浮點數(0.0~1.0)
glutSolidTeapot(0.3);///大小為0.3的茶壺
glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
另一種方式
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///清畫面
glColor3ub(248,199,20);///ub: unsigned char byte (0~255)
glutSolidTeapot(0.3);///大小為0.3的茶壺
glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
3.改變背景顏色
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClearColor(255/255.0,128/255.0,192/255.0,1);///清背景顏色
glClear(GL_COLOR_BUFFER_BIT);///清畫面
glColor3ub(248,199,20);///RGB調整茶壺的color
glutSolidTeapot(0.3);///大小為0.3的茶壺
glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}
Part3 畫三角形
#include <stdio.h>
#include <GL/glut.h>///使用較高級的GLUT(OpenGL User Toolkit)
void display()
{
glClearColor(255/255.0,128/255.0,192/255.0,1);///清背景顏色
glClear(GL_COLOR_BUFFER_BIT);///清畫面
glBegin(GL_POLYGON);///開始畫
glColor3ub(135,248,239);///顏色
glVertex2f(-1,-1);///座標點
glColor3ub(250,253,130);
glVertex2f(+1,-1);
glColor3ub(201,130,253);
glVertex2f(0,1);
glEnd();///結束畫
glutSwapBuffers();///交換double buffers來顯示畫出來的畫面
}








沒有留言:
張貼留言