2021年3月3日 星期三

築損 Week02



 第二周

先打開opengl,glut




打開GLUT程式並修改,顯示出TeaPot

程式如下

#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)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("Week02 吳英昭");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutMainLoop();///(5)主要程式 }

再加上glColor3f(1,0.3,0);

就變橘了

#include <GL/glut.h>///使用GLUT外掛 static void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景 glColor3f(1,0.3,0); glutSolidTeapot(0.3); glutSwapBuffers();///更新畫面 } int main(int argc, char *argv[])///main()函式 { glutInit(&argc, argv);///(1)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("Week02 吳英昭");///(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);///清背景 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.3,0); glutSolidTeapot(0.3); glutSwapBuffers();///更新畫面 } int main(int argc, char *argv[])///main()函式 { glutInit(&argc, argv);///(1)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("Week02 吳英昭");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutMainLoop();///(5)主要程式 }

把GL_TRIANGLES換成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,1.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)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("Week02 吳英昭");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutMainLoop();///(5)主要程式 }



#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(72/255.0,90/255.0,116/255.0); glVertex2f((102-150)/150.0,-(250-150)/150.0); glVertex2f((216-150)/150.0,-(250-150)/150.0); glVertex2f((192-150)/150.0,-(176-150)/150.0); glVertex2f((133-150)/150.0,-(148-150)/150.0); glEnd(); glColor3f(1,0,0); ///glutSolidTeapot(0.3); glutSwapBuffers();///更新畫面 } int main(int argc, char *argv[])///main()函式 { glutInit(&argc, argv);///(1)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("Week02 吳英昭");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutMainLoop();///(5)主要程式 }
















沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...