一開始先複習上周的最簡單3D程式,讓我們跳過ou<
---------------------------------------------------
- 茶壺
首先從GLUT中取出我們要用到的程式碼,大概是10行到20行左右>>
glutSolidTeapot(0.3); ///茶壺的圖
再把glutCreateWindow()中間的字改掉>>
glutCreateWindow("08160342 WEEEEE");
&完成後的樣子
- 程式碼
#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[]) ///main()函式
{
glutInit(&argc, argv);///(1)Inet初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
(2) Init初始化 Display 的功能
glutCreateWindow("08160342 WEEEEE");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備 display()函式
glutMainLoop();///(5)主要函式
}
---------------------------------------------------
- 茶壺變色
- 程式碼
#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[]) ///main()函式
{
glutInit(&argc, argv);///(1)Inet初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
(2) Init初始化 Display 的功能
glutCreateWindow("08160342 WEEEEE");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備 display()函式
glutMainLoop();///(5)主要函式
}
---------------------------------------------------
- 茶壺加三角形
將GL中的幾行>>
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();
偷過來用 YEE
\\搭拉//
- 程式碼
#include <GL/glut.h>
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[]) ///main()函式
{
glutInit(&argc, argv);///(1)Inet初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
(2) Init初始化 Display 的功能
glutCreateWindow("08160342 WEEEEE");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備 display()函式
glutMainLoop();///(5)主要函式
}
---------------------------------------------------
- 茶壺旁邊加線線
網路上打GLBegin 能查到許多能用的函式
這次用glBegin(GL_LINE_LOOP);
#include <GL/glut.h>
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
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[]) ///main()函式
{
glutInit(&argc, argv);///(1)Inet初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
(2) Init初始化 Display 的功能
glutCreateWindow("08160342 WEEEEE");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備 display()函式
glutMainLoop();///(5)主要函式
}
---------------------------------------------------
- 茶壺加圈圈
中間更改
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f);
for(float angle=0;angle<3.14159265358979*2; angle+=0.01){
glVertex2f(0.5*cos(angle), 0.5*sin(angle));
}
就會得到>>
- 程式碼
#include <GL/glut.h>
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f);
for(float angle=0;angle<3.14159265358979*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[]) ///main()函式
{
glutInit(&argc, argv);///(1)Inet初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
(2) Init初始化 Display 的功能
glutCreateWindow("08160342 WEEEEE");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備 display()函式
glutMainLoop();///(5)主要函式
}






沒有留言:
張貼留言