一.下載
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/從網站中下載3個檔案
1.data
2.win32
3.glut32.dll
將windows.zip解壓縮glut32.dll放入資料夾
開啟Shapes.exe

二.開啟程式
右鍵可以選擇點、線、面、三角形、四邊形、多邊形介面會出現兩種函式
1.顏色
顏色函式
glColor3f(r,g,b);
(1)gl是OpenGL的函式
(2)Color色彩
(3)3個參數
(4)f float浮點數
(1)gl是OpenGL的函式
(2)Color色彩
(3)3個參數
(4)f float浮點數
2.頂點
頂點函式
glVertex2f(x,y);
(1)gl是OpenGL的函式
(2)Vertex頂點
(3)2個參數
(4)f float浮點數
搜尋Vertex結取
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();
頂點函式
glVertex2f(x,y);
(1)gl是OpenGL的函式
(2)Vertex頂點
(3)2個參數
(4)f float浮點數
三.用codeblocks
1.從projects中開啟OPEN GL搜尋Vertex結取
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();
2.從projects中開啟GLUT
#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();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
return EXIT_SUCCESS;
}

#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();
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
return EXIT_SUCCESS;
}

3.從零開始自己打,畫出茶壺
(1)
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutCreateWindow("05160354_Week02");
glutDisplayFunc(display);
glutMainLoop();
}
(2)上色
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,1,0);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutCreateWindow("05160354_Week02");
glutDisplayFunc(display);
glutMainLoop();
}
頂點上的顏色會自動填入
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1,0,0);
glVertex2f(0,1);
glColor3f(0,1,0);
glVertex2f(1,0);
glColor3f(0,0,1);
glVertex2f(-1,0);
glEnd();
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutCreateWindow("05160354_Week02");
glutDisplayFunc(display);
glutMainLoop();
}



沒有留言:
張貼留言