顯示具有 week02 標籤的文章。 顯示所有文章
顯示具有 week02 標籤的文章。 顯示所有文章

2021年6月8日 星期二

電腦圖學 week 2

 #include <GL/glut.h>


void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glColor3f(1,0,0);  ///顏色 R G B
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02 08163034!");
    glutDisplayFunc(display);
    glutMainLoop();
}



#include <GL/glut.h>
void display()
{
  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(0.5,1,0.2); ///顏色
  glutSolidTeapot(0.3);
  glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02 08163034!");
    glutDisplayFunc(display);
    glutMainLoop();
}

GL_LINE_LOOP

 

改成 glBegin(GL_TRIANGLES);

 

GL_TRIANGLES

#include <GL/glut.h>
#include <math.h> ///數學的外掛cos() sin()
void display()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glBegin(GL_POLYGON);

   glColor3f(1.0f, 0.0f, 0.0f);
   for(float angle=0; angle<3014159265358979*2; angle+=0.01){
    glVertex2f( 0.5*cos(angle), 0.5*sin(angle) );///Vertex=頂點
   }
  glEnd();
    glColor3f(0.5,1,0.2); ///顏色
  glutSolidTeapot(0.3);
  glutSwapBuffers();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02 08163034!");
    glutDisplayFunc(display);
    glutMainLoop();
}



2021年4月28日 星期三

08160581 薑餅 圖學筆記 week02

 

#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); /// init初始化glut
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    ///init初始化 dispaly的功能 色彩 雙倍顯示 3D
    glutCreateWindow("林北 08160732 song!"); ///打開的網頁名稱
    glutDisplayFunc(display); ///準備DISPLAY()函式
    glutMainLoop(); ///主要函式
}
程式碼做出茶壺
加上glColor3f( 1,   0,  0 );
茶壺顏色變ㄌ
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();
用這程式碼召喚彩色三角形
茶壺變綠色,三角形剩邊框
三角形變圓形ㄌ







2021年3月18日 星期四

嘎嘎烏拉-(電腦圖學)Week02電腦圖學homework

 #include <GL/glut.h>


#include <math.h>


void display()


{


    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glBegin(GL_POLYGON);


        glColor3f(244/255.0, 203/255.0, 87/255.0);


        glVertex2f(  (8-150)/50.0,   -(8-150)/50.0);


        glVertex2f((212-150)/50.0,   -(8-150)/50.0);


        glVertex2f((212-150)/50.0, -(211-150)/50.0);


        glVertex2f(  (8-150)/50.0, -(211-150)/50.0);


    glEnd(); ///¥H¤W¬O­I´º

    glBegin(GL_POLYGON);


        glColor3f(28/255.0, 16/255.0, 12/255.0);


        glVertex2f(  (51-150)/150.0,   -(70-150)/150.0);


        glVertex2f((99-150)/150.0,   -(70-150)/150.0);


        glVertex2f((99-150)/150.0, -(131-150)/150.0);


        glVertex2f(  (51-150)/150.0, -(131-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(28/255.0, 16/255.0, 12/255.0);


        glVertex2f(  (200-150)/150.0,   -(70-150)/150.0);


        glVertex2f((248-150)/150.0,   -(70-150)/150.0);


        glVertex2f((248-150)/150.0, -(131-150)/150.0);


        glVertex2f(  (200-150)/150.0, -(131-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(243/255.0, 243/255.0, 243/255.0);


        glVertex2f(  (211-150)/150.0,   -(74-150)/150.0);


        glVertex2f((231-150)/150.0,   -(74-150)/150.0);


        glVertex2f((231-150)/150.0, -(94-150)/150.0);


        glVertex2f(  (211-150)/150.0, -(94-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(243/255.0, 243/255.0, 243/255.0);


        glVertex2f(  (68-150)/150.0,   -(74-150)/150.0);


        glVertex2f((88-150)/150.0,   -(74-150)/150.0);


        glVertex2f((88-150)/150.0, -(94-150)/150.0);


        glVertex2f(  (68-150)/150.0, -(94-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(77/255.0, 62/255.0, 52/255.0);


        glVertex2f(  (51-150)/150.0,   -(122-150)/150.0);


        glVertex2f((99-150)/150.0,   -(122-150)/150.0);


        glVertex2f((99-150)/150.0, -(130-150)/150.0);


        glVertex2f(  (51-150)/150.0, -(130-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(77/255.0, 62/255.0, 52/255.0);


        glVertex2f(  (200-150)/150.0,   -(122-150)/150.0);


        glVertex2f((248-150)/150.0,   -(122-150)/150.0);


        glVertex2f((248-150)/150.0, -(130-150)/150.0);


        glVertex2f(  (200-150)/150.0, -(130-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(48/255.0, 42/255.0, 36/255.0);


        glVertex2f(  (137-150)/150.0,   -(132-150)/150.0);


        glVertex2f((163-150)/150.0,   -(132-150)/150.0);


        glVertex2f((163-150)/150.0, -(148-150)/150.0);


        glVertex2f(  (137-150)/150.0, -(148-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(255/255.0, 0/255.0, 0/255.0);


        glVertex2f(  (0-150)/150.0,   -(150-150)/150.0);


        glVertex2f((68-150)/150.0,   -(150-150)/150.0);


        glVertex2f((68-150)/150.0, -(230-150)/150.0);


        glVertex2f(  (0-150)/150.0, -(230-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(255/255.0, 0/255.0, 0/255.0);


        glVertex2f(  (233-150)/150.0,   -(150-150)/150.0);


        glVertex2f((300-150)/150.0,   -(150-150)/150.0);


        glVertex2f((300-150)/150.0, -(230-150)/150.0);


        glVertex2f(  (233-150)/150.0, -(230-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(150/255.0, 96/255.0, 109/255.0);


        glVertex2f(  (93-150)/150.0,   -(170-150)/150.0);


        glVertex2f((207-150)/150.0,   -(170-150)/150.0);


        glVertex2f((207-150)/150.0, -(217-150)/150.0);


        glVertex2f(  (93-150)/150.0, -(217-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(212/255.0, 153/255.0, 179/255.0);


        glVertex2f(  (110-150)/150.0,   -(191-150)/150.0);


        glVertex2f((190-150)/150.0,   -(191-150)/150.0);


        glVertex2f((190-150)/150.0, -(217-150)/150.0);


        glVertex2f(  (110-150)/150.0, -(217-150)/150.0);


    glEnd();

    glBegin(GL_POLYGON);


        glColor3f(150/255.0, 96/255.0, 109/255.0);


        glVertex2f(  (136-150)/150.0,   -(170-150)/150.0);


        glVertex2f((150-150)/150.0,   -(156-150)/150.0);


        glVertex2f((163-150)/150.0, -(170-150)/150.0);


    glEnd();




    glutSwapBuffers();


}




int main(int argc,char**argv)


{


    glutInit(&argc,argv);


    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);


    glutCreateWindow("08160873");


     glutDisplayFunc(display);


     glutMainLoop();


}


2021年3月17日 星期三

Xian筆記-Week02

 Week02

(當日未到 Sorry~,事後用小葉老師上課影片補做!)

1.開啟OpenGL & 開啟GLUT (詳情請見Week01 !!!)



2.將GLUT中程式碼精簡留下需學習內容!!! (額外說明可善用Notepad++)




3.介紹程式碼內容及增加茶壺~




#include <GL/glut.h>///使用GLUT外掛 static void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景 glutSolidTeapot(0.5);///茶壺!!! glutSwapBuffers();///更新畫面 } int main(int argc, char *argv[])///main()函式 { glutInit(&argc, argv);///Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///Init初始化Display功能 glutCreateWindow("07160325 小乖的茶壺");///建立自訂名稱的GLUT視窗 glutDisplayFunc(display);///準備display()函式 glutMainLoop();///主要函式 }


中場補充int main() & notepad++複製大法 !!!




4.顏色怎麼來?

glColor3f(R,G,B);///增加顏色





static void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景 glColor3f(1,0,0);///增加顏色,RGB隨意更改 glutSolidTeapot(0.5);///畫茶壺 glutSwapBuffers();///更新畫面 }









5.課程繼續 ! 開始畫&結束畫 & 有色三角形背景 !

glBegin(GL_TRIANGLES); ///開始畫

        glVertex2f(x,y); ///頂點的座標,Vertex=頂點

  glEnd(); ///結束畫



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.5);///畫茶壺 glutSwapBuffers();///更新畫面 }
































6.介紹GLBegin

POINTS ///純粹的點
LINE_STRIP ///按照順序的連線
LINE_LOOP ///同上,但最後一點會連回第一點
TRIANGLES ///三角形,每三個點做一個三角形
GL_POLYGON ///多邊形






7.畫圓形!! (用了數學外掛!!)


    glBegin(GL_POLYGON); glColor3f(1.0, 0.0, 0.0); for(float angle=0;angle<3.14159265*2;angle+=0.01){ glVertex2f( cos(angle), sin(angle)); } glEnd();///圓形











glBegin(GL_POLYGON); glColor3f(1.0, 0.0, 0.0); for(float angle=0;angle<3.14159265*2;angle+=0.01){ glVertex2f(0.5*cos(angle),0.5*sin(angle)); } glEnd();///圓形



 ///如何縮小那個圓 :)




-----------------------------------------------------------------------------------------------------------------------------

正式作圖!!!

怎麼抓色彩?

Ans:使用小畫家的滴管>編輯色彩>RGB編號


怎麼抓位置?

Ans:小畫家>游標移到某個點上>下面會告訴你座標



開畫!





#include <GL/glut.h> ///使用GLUT外掛 #include <math.h> ///使用數學外掛 cos() sin() void display() { 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(); glBegin(GL_POLYGON);///"-"表跟小畫家座標上下顛倒,這是那個原諒色 glColor3f(176/255.0, 199/255.0, 146/255.0); glVertex2f( (156-150)/150.0 , -(136-150)/150.0 ); glVertex2f( (140-150)/150.0 , -(170-150)/150.0 ); glVertex2f( (196-150)/150.0 , -(166-150)/150.0 ); glEnd(); glutSwapBuffers(); } int main(int argc, char*argv[]) { glutInit( &argc, argv ); glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); ///少寫一個,因為預設就是RGB glutCreateWindow("Week02 07361092!!!"); glutDisplayFunc(display); glutMainLoop(); }






























距地表面160 Week11

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