顯示具有 程式碼可以置左對齊 標籤的文章。 顯示所有文章
顯示具有 程式碼可以置左對齊 標籤的文章。 顯示所有文章

2017年10月9日 星期一

阿凱不糊塗學習的圖學筆記WEEK04

練習Translate, Rotate, Scale
移動、旋轉、縮放

1.開啟新的GLUT專案
glPushMatrix();
                glTranslated(-2.4,1.2,-6);
        glRotated(60,1,0,0);
      glRotated(a,0,0,1);
                            glutSolidSphere(1,slices,stacks)
glPopMatrix();
(下圖為原本執行結果)
2.修改程式碼

原部分程式碼
glPushMatrix();
                glTranslated(-2.4,1.2,-6);
        glRotated(60,1,0,0);
      glRotated(a,0,0,1);
                            glutSolidCone(1,slices,stacks)
glPopMatrix();

修改後
glPushMatrix();
        glTranslated(2,1.2,-6);//移動位置(X,Y,Z)
        glRotated(60,1,0,0);//(旋轉60度,X軸,Y軸,Z軸)
        glRotated(a,0,0,1);//沿Z軸不斷旋轉a
        glScalef(2,2,2);//沿三軸放大2倍
        glColor3f(1,0,1);//修改顏色
        glutSolidTeapot(1);//將圖形改成茶壺
    glPopMatrix();


                                                                                  執行!!!!!!!!!!!!!!!!!!!!!!!

2017年9月21日 星期四

瑋倫的點線面筆記

1.打開GLUT專案

2.複製部分程式碼(可用notepad++編輯)
#include <GL/glut.h>
void display()
{
 glClearColor(1,0,0,0); //清背景顏色 (R,G,B,A) ex:紅1000
                                         
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glColor3f(1,1,1);
                                    //3是3個參數,f是0.0-1.0之間的浮點數
                                 

 glutSolidTeapot(0.3); //茶壺 glut外掛

 glutSwapBuffers(); //交換繪圖Buffers
}

int main(int argc, char *argv[]) //主程式函式,吃argc參數數量,argv是參數的全部,用陣列存
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //設定顯示模式
 glutCreateWindow("GLUT Shapes");
 glutDisplayFunc(display);
 glutMainLoop(); //主要迴圈
}


完成茶壺~~
3.做三角形程式碼
#include <GL/glut.h>

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

 glBegin(GL_POLYGON); //開始畫(多邊形)
        //彩色三角形在頂點前用函式glColor3f(R,G,B);
 glColor3f(1,0,0); glVertex3f(1,1,0); //三個頂點 前面為設定顏色
 glColor3f(0,1,0); glVertex3f(-1,1,0);
 glColor3f(0,0,1); glVertex3f(0,-1,0);
        
 glEnd(); //結束畫

 glutSwapBuffers();
}

int main(int argc, char *argv[])
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
 glutCreateWindow("GLUT Shapes");
 glutDisplayFunc(display);
 glutMainLoop();
}