2019年3月7日 星期四

06160494_圖學語言_點線面程式_Week03_

http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/


安裝[WIN32] ,[DATA] ,[glut32.dll]三個檔案, 並解壓縮在同一個資料夾,
解壓縮完之後,就能夠跑檔案來玩了。

以 SHAPES.EXE為例子。
可以在"左邊",點"右鍵"開啟頂點,或色彩。
可以在"右邊",點"右鍵"換形狀,點左鍵改參數。



















自己打程式。

使用專案的GLUT檔案。
詳細步驟參考W1。

#include<GL/glut.h>
//導入資料夾的GL資料夾的glut.h檔案
void display(){
//自定函式 display
glutSolidTeapot(0.7);
//茶壺大小
glutSwapBuffers();
//交換秀出

}
int main(int argc,char**argv){
    glutInit(&argc,argv);
//初始啟動
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

//初始啟動的模式。記憶體空間(2倍BUFFER),3D深度。

    glutCreateWindow("張佑銓的WEEK03");

//製造你的WINDOW,視窗命名為 "雙引號內容"
    glutDisplayFunc(display);
//DISPLAY的函式是........("");
    glutMainLoop();
//不停重複 DISPLAY函式

}
  加上:glColor3f(R,G,B);//顏色用

#include<GL/glut.h>

void display(){

glutSolidTeapot(0.7);
  glColor3f(R,G,B);
glutSwapBuffers();

}
int main(int argc,char**argv){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("張佑銓的WEEK03");

    glutDisplayFunc(display);

    glutMainLoop();

}

http://120.125.89.81  必要時刻直接連老師IP拿程式

#include<GL/glut.h>
#include<stdio.h>
#include<math.h>
void display(){
    glBegin(GL_POLYGON);
    glColor3f(125/255.0,125/255.0,125/255.0);
        glVertex2f((200-100)/100.0,-(0-100)/100.0);
        glVertex2f((0-100)/100.0,-(0-100)/100.0);
        glVertex2f((0-100)/100.0,-(200-100)/100.0);
        glVertex2f((200-100)/100.0,-(200-100)/100.0);
     glEnd();
    glBegin(GL_POLYGON); //大白色外
        glColor3f(255/255.0,255/255.0,255/255.0);
        for(float a=0;a<3.14*2;a+=0.01){
            glVertex2d(-0.5+cos(a)+0.5,sin(a));
        }
    glEnd();
     glBegin(GL_POLYGON);//黑大左半
        glColor3f(0/255.0,0/255.0,0/255.0);
        for(float a=1.57;a<3.14*1+1.57;a+=0.01){
            glVertex2d(-0.5+cos(a)+0.5,sin(a));
        }
    glEnd();

    glBegin(GL_POLYGON);//上中白圈
        glColor3f(255/255.0,255/255.0,255/255.0);
        for(float a=0;a<3.14*2;a+=0.01){
            glVertex2d(-0.5+cos(a)/2+0.5,0.50+sin(a)/2);
        }
    glEnd();
   glBegin(GL_POLYGON);//上小黑點
        glColor3f(0/255.0,0/255.0,0/255.0);
        for(float a=0;a<3.14*2;a+=0.01){
            glVertex2d(-0.5+cos(a)/7+0.5,0.550+sin(a)/7);
        }
    glEnd();

      glBegin(GL_POLYGON);//下中黑圈
        glColor3f(0/255.0,0/255.0,0/255.0);
        for(float a=0;a<3.14*2;a+=0.01){
            glVertex2d(-0.5+cos(a)/2+0.5,-0.5+sin(a)/2);
        }
    glEnd();

      glBegin(GL_POLYGON);//下小白點
        glColor3f(255/255.0,255/255.0,255/255.0);
        for(float a=0;a<3.14*2;a+=0.01){
            glVertex2d(-0.5+cos(a)/7+0.5,-0.550+sin(a)/7);
        }
    glEnd();
    glutSwapBuffers();
}
int main(int argc,char**argv){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("WEEK03");
    glutDisplayFunc(display);
    glutMainLoop();

}





沒有留言:

張貼留言