1.開OpenGL
- 打開OPENGL
- 打開程式碼
- 留下反白的五行
2.開GLUT
- 打開GLUT
- 開NOTEPAD++儲存GLUT的程式碼
- 留主程式前幾行
原始程式:
#include <GL/glut.h>///使用GLUT的外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///初始化Display的功能
glutCreateWindow("ME");///建視窗
glutDisplayFunc(display);///準備dispaly的函式
glutMainLoop();///主函式
}
加上紅字那行後
執行結果:
改顏色:
#include <GL/glut.h>///使用GLUT的外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glColor3f(1,0,0);
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///初始化Display的功能
glutCreateWindow("ME");///建視窗
glutDisplayFunc(display);///準備dispaly的函式
glutMainLoop();///主函式
}
執行結果:
合併程式碼:
把第一步的程式碼加到第二步
#include <GL/glut.h>///使用GLUT的外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(0.0f, 1.0f);
glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.87f, -0.5f);
glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(-0.87f, -0.5f);
glEnd();
glColor3f(1,0,0);
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///初始化Display的功能
glutCreateWindow("ME");///建視窗
glutDisplayFunc(display);///準備dispaly的函式
glutMainLoop();///主函式
}
加上OpenGL的程式後
執行結果:
把glBegin(GL_TRIANGLES); 改成 glBegin(GL_LINE_LOOP);
執行結果:
加上數學功能後:
#include <GL/glut.h>///使用GLUT的外掛
#include <math.h>
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.3f, 0.5f);
for(float angle=0;angle<3.1415926*2;angle+=0.01){
glVertex2f(0.5*cos(angle),0.5*sin(angle));
}
glEnd();
glColor3f(1,0,0);
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);///初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///初始化Display的功能
glutCreateWindow("ME");///建視窗
glutDisplayFunc(display);///準備dispaly的函式
glutMainLoop();///主函式
}
加上黃字畫出圓形
執行結果:
沒有留言:
張貼留言