WEEK02-1
STEP02-1 親手打造glut程式10行
#include <GL/glut.h>
void display()
{
glutSolidTeapot( 0.3 );//畫出實心的茶壺
glutSwapBuffers();//交換顯示出來
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
//要設定 GLUT 的顯示模式
glutCreateWindow("GLUT Shapes");//要建一個窗字,較 "..."
glutDisplayFunc(display);//要顯示的函式 DISPLAY()
glutMainLoop();//最後用main迴圈 壓在最後
}
STEP02-1 glColor3f(0,1,0) 將茶壺上色 黃色
glColor3f(0,1,0) 將茶壺變綠色 glutSolidTeapot( 0.3 ) 改變茶壺大小
STEP02-2 加上頂點
glColor3f(0,1,0);///綠色的
glBegin(GL_POLYGON);///多邊形
glVertex2f(0,1);///上面
glVertex2f(-1,-1);///左下角
glVertex2f(1,-1);///右下角
glEnd();
把glColor3f(0,1,0)刪掉 由頂點填顏色 glColor3f(1,0,0); glVertex2f(0,1);///上面 紅色
glColor3f(0,1,0); glVertex2f(-1,-1);///左下角 黃色
glColor3f(0,0,1); glVertex2f(1,-1);///右下角 綠色
STEP02-3 用很多頂點畫出一個很帥的圖
#include <GL/freeglut.h>
oid display()
{
///小畫家幫我們寫程v式 除 255.0 就好
glColor3f(233/255.0,141/255.0,128/255.0);
///顏色不可以超過不可以
glBegin(GL_POLYGON);///多邊形
glVertex2f((65-100)/100.0,-(54-100)/100.0);
glVertex2f((34-100)/100.0,-(138-100)/100.0);
glVertex2f((59-100)/100.0,-(138-100)/100.0);
glVertex2f((87-100)/100.0,-(53-100)/100.0);
///先減一半 再除一半 y變負號
glEnd();
glutSwapBuffers();
}
STEP02-4 畫圓
#include <math.h>
void myCircle(float r, float x, float y)
{
glBegin(GL_POLYGON);
for (float a=0;a<=2*3.144592;a+=0.01)
{
glVertex2f(r*cos(a)+x,r*sin(a)+y);
}
glEnd();
}
void display()
{
glColor3f(233/255.0,141/255.0,128/255.0);
myCircle(0.5,0,0);
glColor3f(1,1,0);
myCircle(0.3,0.5,0.5);
glColor3f(1,0,0);
myCircle(0.3,-0.5,0.5);
glColor3f(0,1,0);
myCircle(0.3,-0.5,-0.5);
glColor3f(0,0,1);
myCircle(0.3,0.5,-0.5);
glutSwapBuffers();
}
沒有留言:
張貼留言