2019年4月27日 星期六

寶欸學習筆記 week10

week10
教學目標:
1.期中考OpenGL十行必背程式碼
2.今日主題:改變軸心旋轉
甜筒轉動程式碼(擺放到指定地點以及更改轉動中心):

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0, 0.5, 0);///(2)將茶壺上移
        glutSolidTeapot(0.3);///(1)先畫茶壺
    glPopMatrix();
    glPushMatrix();
        //glutSolidSphere(0.3, 30, 30);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.50, 0.625, 0);///5.把甜筒掛在指定的位置
        glRotatef(angle, 0, 0, 1);///3.先能夠轉動甜筒,但怪怪的
        glTranslatef(0.6, 0, 0);///4.所以改變轉動中心,讓轉動比較自然

        glRotatef(-90, 0 ,1, 0);///2.再將Cone轉動90度,可以看到甜筒的形狀
        glutSolidCone(0.2, 0.6, 30, 30);///1.先有個直直的Cone
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x, int y)
{
    angle=x;
    display();
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();
}

2019年4月25日 星期四

彥の圖學筆記 Week10

電腦圖學

2019-04-25 Week10

(1) 期中考: OpenGL必背10函式

(2) 複習: 移動,旋轉,縮放

(3) 主題: T-R-T 旋轉(改變旋轉軸)

(4) glut

程式碼:

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0, 0.5, 0);///這是往上移動的茶壺
        glutSolidTeapot(0.3);///This is a Teapot
    glPopMatrix();
    glPushMatrix();
        //glutSolidSphere(0.3, 30, 30);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.50, 0.625, 0);///(3)把它掛在你要放的地方
        glRotatef(angle, 0, 0, 1);///(1)先有個轉動,但怪怪的
        glTranslatef(0.6, 0, 0);///(2)要更早去移動旋轉中心

        glRotatef(-90, 0 ,1, 0);///(0)轉動90度的Cone
        glutSolidCone(0.2, 0.6, 30, 30);///直直的Cone
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x, int y)
{
    angle=x;
    display();
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();
}

電腦圖學成長日記第十週

第十週上課內容

(1)期中考:OpenGL必背10函式

(2)複習:移動.旋轉.縮放

(3)主題:T-R-T旋轉(改變旋轉軸)

(4)主題:glut
STEP1:
下載glut32 data 跟 window
再打開Transformation


STEP2:
改變數據 車子會有所改變

STEP3:
在CODE BLOCKS打上程式碼
#include<GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glPushMatrix();

    glPopMatrix();

    glPushMatrix();
        glTranslatef(0.50,0.625,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.6,0,0);

        glRotatef(-90,0,1,0);
        glutSolidCone(0.2,0.6,30,30);
     glPopMatrix();
     glutSwapBuffers();
    }
    void motion(int x,int y)
    {

        angle=x;
        display();
    }
    int main(int argc,char**argv)
    {
        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
        glutCreateWindow("week10 TRT");

        glutDisplayFunc(display);
        glutMotionFunc(motion);

        glutMainLoop();
        }
完成後會成出現下列畫面
三角形的頂點會隨著茶壺的嘴移動旋轉


比利安娜工作室-夜狗雞排,W10

電圖Week10 2019/04/25

1.期中考
OpenGL必考11函式.......GG
2.複習:移動,旋轉,縮放
3.T-R-T旋轉(改變旋轉軸)
4.主題:glut

Transformation.exe 自轉vs公轉
自轉
glTranslatef(...) 
glRotatef(...)  

公轉
glRotatef(...)  
glTranslatef(...) 

GLUT

06161091蔡萓芹,week10

1.期中考:OpenGL必備10行函式
2.複習:移動 旋轉 縮放
(1)到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/下載:data、win32、glut32.dll
(2)將windows解壓縮後,把data、glut32.dll放到windows資料夾裡面
(3)打開Transformation.exe打開試玩看看

3.主題:T-R-T旋轉(改變旋轉軸)
(1)下載Freeglut3.0.0解壓縮
(2)freeglut---lib(如圖)
    複製freeglut資料夾網址

(3)Create New Project:Glut
    貼上資料途徑,打開程式碼(如圖)
(4)#include <GL/glut.h>
float angle=0; void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glTranslatef(0,0.5,0);/// 這是往上移動的茶壺 glutSolidTeapot(0.3); ///茶壺 glPopMatrix(); glPushMatrix(); glPopMatrix(); glPushMatrix(); glRotatef(angle,0,0,1); glTranslatef(0.6,0,0); glRotatef(-90,0,1,0); ///轉動90度的cone glutSolidCone(0.2,0.6,30,30); ///直直的cone glPopMatrix(); glutSwapBuffers(); } void motion(int x,int y) { angle = x; display(); } int main(int argc, char**argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH); glutCreateWindow("week10 TRT"); glutDisplayFunc(display); glutMotionFunc(motion); glutMainLoop(); }

朱書樑的上課筆記

主題:T-R-T旋轉
1.到http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/下載[data][win32][glut32.dll]
2.將[win32]解壓縮,並將data以及glut32.dll放入資料夾中
3.打開Transformation.exe進行操作,並比較glRotate放第一行與glTranslate放第一行的差別
公轉自轉

4. 打開codeblocks並打入以下程式碼:
程式碼:
#include <GL/glut.h>
float angle=0;

void display()

{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
    glTranslatef(0,0.5,0);
    glutSolidTeapot( 0.3 );
    glPopMatrix();
    glPushMatrix();
    //glutSolidSphere(0.3,30,30);
    glPopMatrix();
    glPushMatrix();
    glTranslatef(0.5,0.625,0);
    glRotatef(angle ,0,0,1);
    glTranslatef(0.6,0,0);
    glRotatef(-90,0,1,0);
    glutSolidCone(0.2,0.6,30,30);
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x,int y)
{
    angle=x;
    display();
}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
    glutCreateWindow("06160540");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}
5.按下執行即可

電腦圖學 week10

(1)下載範例



















分成三圈去理解程式碼.

以上為自轉.

公轉:

glRotatef(...);
glTranslatef(...);
//以下省略

(2)程式碼:














照著老師的程式碼打,完成程式碼.

電腦圖學筆記

主題:T-R-T旋轉
Transformation.exe 自轉vs.公轉
glTranslatef(....)                   glRotatef(.....) 
glRotatef(.....)                      glTranslatef(....) 

     

打上老師教的程式碼
#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glPushMatrix();

    glPopMatrix();

    glPushMatrix();
        glTranslatef(0.50,0.625,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.6,0,0);

        glRotatef(-90,0,1,0);
        glutSolidCone(0.2,0.6,30,30);
    glPopMatrix();
    glutSwapBuffers();

}
void motion(int x,int y)
{
       angle=x;
       display();
}
int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week10 TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();
}
按著就可以旋轉了
      

~~~

電腦圖學
(1)期中考:OpenGL必背10函式
(2)複習:移動,旋轉,縮放
(3)主題:T-R-T旋轉
              (改變旋轉軸)
(4)主題:glut
TODO:下載範例
1.進入http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/ ,下載data win32 glut32.dll







2.將windows解壓縮,再把解壓縮的data和glut.dll放到windows的解壓縮檔裡面
3.打開transformation.exe檔案

Transformation.exe自轉 vs. 公轉
glTranslatef(...)  
glRotate(...)                        

glRotatef(...)                         
glTranslatef(...)
4.打開https://www.transmissionzero.co.uk/software/freeglut-devel/下載

freeglut 3.0.0 MinGW Package

5.將freeglut解壓縮,把裡面的libfreeglut.a複製,更改檔名為libglut32.a
6.打開codeblocks,複製freeglut的位址貼上就可以打開
7.打上程式碼就可以看到甜筒與茶壺年在一起,且甜筒可以旋轉
程式碼:
#include <GL/glut.h>

float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);///這是往上移動的茶壺
        glutSolidTeapot(0.3);///This is a Teapot
    glPopMatrix();
    glPushMatrix();

    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.50,0.625,0);///(3)把它掛在你要放的地方
        glRotatef(angle,0,0,1);///(1)先有個轉動,但怪怪的
        glTranslatef(0.6,0,0);///(2)要更早去移動旋轉中心

        glRotatef(-90,0,1,0);///(0)轉動90度的Cone
        glutSolidCone(0.2, 0.6 , 30,30);///直直的Cone
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x,int y)
{
    angle=x;
    display();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week10 TRT");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}

06160246_W10

電腦圖學week10
2019-04-25
(1)期中考:OpenGL必背10行函式
(2)複習:移動,旋轉,縮放
(3)主題:T-R-T旋轉(改變旋轉軸)
(4)主題:glut

下載 解壓縮 





打開Transformation


按右鍵能讓車子從自轉變公轉








Week10 鍾嘉穎 2019-04-25

1. 期中考:OpenGL必背10函數
2. 複習: 移動, 旋轉, 縮放
      1. 點進去小葉的網頁: http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
      2. 下載 Example裏的 win32, glut32.dll, data, source
      3. 解壓縮到下載 (但先不要把souces .zip解壓縮)
      4. 把已解壓的 data 資料夾拉到windows裏
      5. 把已解壓的 glut32.dll 資料夾拉到windows裏
      6. 打開 Transformation.exe

      
            
      圖一: 車子自轉(右)


      
      圖二: 車子公轉 (右)


3. T-R-T 旋轉 (改變旋轉軸)
     1. 先載入freeglut (跟第一週一樣)
           1. Google search "freeglut windows"
           2. 從Transmission Zero 下載 "freeglut 3.0.0 MinGW Package"
           3. 解壓縮後放到桌面
           4. 在lib複製一個"libfreeglut.a"命名為"libglut32.a"
           5. CodeBlocks 開
           6. File  ->  New -> Project -> GLUT Project
           7. 把location改成"C:\Users\user\Desktop\freeglut"


     2. 先把茶壺的程式碼打到main
               #include <GL/glut.h>
                void display(){
                    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                    glutSolidTeapot( 0.3 );
                    glutSwapBuffers();
                }
                int main(int argc, char**argv){
                    glutInit(&argc,argv);
                    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
                    glutCreateWindow("06160912");
                    glutDisplayFunc(display);
                    glutMainLoop();
                }

     3. 改一下程式碼
                #include <GL/glut.h>
                float angle=0;
                void display(){
                    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                    glPushMatrix();
                        glTranslatef(0,0.5,0); ///這是往上移動的茶壺
                        glutSolidTeapot( 0.3 ); ///This is a Teapot
                    glPopMatrix();

                    glPushMatrix();
                        //glutSolidSphere( 0.3,30,30 );
                    glPopMatrix();

                    glPushMatrix();
                        glTranslatef(0.5,0.625,0); ///(3)把它掛在你要放的地方
                        glRotatef(angle,0,0,1); ///(1)先有個轉動, 但怪怪的
                        glTranslatef(0.6,0,0); ///(2)要更早去移動旋轉中心
                        glRotatef(-90,0,1,0); ///(0)轉動90度的Cone
                        glutSolidCone(0.2,0.6,30,30); ///直直的Cone
                    glPopMatrix();

                    glutSwapBuffers();
                }

                void motion(int x, int y)
                {
                    angle=x;
                    display();
                }

                int main(int argc, char**argv){
                    glutInit(&argc,argv);
                    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
                    glutCreateWindow("06160912");
                    glutDisplayFunc(display);
                    glutMotionFunc(motion);
                    glutMainLoop();
                }