點線面色彩
(1)去https://jsyeh.org/3dcg10/下載windows跟data檔案 並把解完壓縮的data檔案拖到windows檔案裡
左視窗的右鍵可調
是否顯示頂點
程式碼多寡
是否顯示頂點
程式碼多寡
(3)把上週10行程式碼貼上
並加上glColor3f(1,1,0);改顏色
並加上glColor3f(1,1,0);改顏色
glColor3f(r,g,b);///參數浮點數數值是介於0~1
glutSolidTeapot(0.3);茶壺的大小
(1)先做大茶壺在做小茶壺
#include <GL/glut.h>///貼上周10行的程式
void display()
{
glColor3f(247/255.0,180/255.0,171/255.0);///今天新加的
glutSolidTeapot(0.3);
glColor3f(233/255.0,219/255.0,205/255.0);///今天新加的
glutSolidTeapot(0.2);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week02_color_teapot");
glutDisplayFunc(display);
glutMainLoop();
}
week02_glut_color_triangle
(1)開一個新GLUT專案並取名為week02_glut_color_triangl
畫出彩色3角形
void display()
{
glBegin(GL_POLYGON);///開始畫
glColor3f(1,0,0); glVertex2f(0,1);///頂點(x,y)
glColor3f(0,1,0); glVertex2f(1,-0.6);
glColor3f(0,0,1); glVertex2f(-1,-0.6);
glEnd();///結束畫
glutSwapBuffers();
};
week02_glut_glVertex2f_mspaint
(1)開一個新GLUT專案並取名為week02_glut_glVertex2f_mspaint
小畫家的鼠標會有座標搭配他撰寫程式
口訣~減一半除一半Y軸加負號
glBegin(GL_POLYGON);///開始畫
glVertex2f((28-200)/200.0,-(37-200)/200.0);
glVertex2f((43-200)/200.0,-(101-200)/200.0);
glVertex2f((81-200)/200.0,-(22-200)/200.0);
glEnd();///結束畫
(1)用for迴圈搭配sin cos 畫圓
void display()
{
glBegin(GL_POLYGON);///開始畫
for(float a=0;a<=3.145*2;a+=0.1){
glVertex2f( cos(a), sin(a) );
}
glEnd();///結束畫
glutSwapBuffers();
};
(2)改變圓的位置跟大小
void display()
{
glBegin(GL_POLYGON);///開始畫
for(float a=0;a<=3.145*2;a+=0.1){
glVertex2f( 0.2*cos(a)+0.5, 0.2*sin(a)+0.5 );
/// r半徑 cx圓X cy圓Y
}
glEnd();///結束畫
glutSwapBuffers();
};
(3)把畫圓程式改成myCricle函式
void myCircle(float x,float y,float r){
glBegin(GL_POLYGON);
for(float a=0;a<=3.145*2;a+=0.1){
glVertex2f( r*cos(a)+x, r*sin(a)+y );
}
glEnd();
}
(4)最後搭配myCricle函式畫出米奇
void display()
{
myCircle( 0.5, 0.5, 0.3);
myCircle(-0.5, 0.5, 0.3);
myCircle( 0,-0.1, 0.6);
glutSwapBuffers();
};
沒有留言:
張貼留言