2020年3月18日 星期三

jiajiau

1.複習上週
下載 data & win32 & glut32.dll 並將 data & win32 解壓縮
並將 data 和 glut32.dll 放入windows裡面
點網址(http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/?fbclid=IwAR1OGK_CF1Q4ivit6p57lyewO2CpG1Gs1ufsFWW7pge-hee5zFTuN7Umvks)


2.複習上週
將GLUT程式修改並顯示出茶壺
程式碼 ↓
#include <GL/glut.h>
void display()
 {
    glutSolidTeapot(0.3);
    glutSwapBuffers();
 }
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week02");
    glutDisplayFunc(display);
    glutMainLoop();
}




3.加入mouse函式並加入printf的標頭
點茶壺可在另一個小黑出現數值
程式碼 ↓
#include <GL/glut.h>
#include <stdio.h>
void display()
 {
    glutSolidTeapot(0.3);
    glutSwapBuffers();
 }

 void mouse(int botton,int state,int x,int y)
 {
    printf("%d %d %d %d\n",botton,state,x,y);
 }

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}



4.用滑鼠可改變茶壺的位置
程式碼 ↓
#include <GL/glut.h>
#include <stdio.h>
float teapotX=0,teapotY=0;
void display()
 {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(teapotX,teapotY,0);
        glutSolidTeapot(0.3);
    glPopMatrix();

    glutSwapBuffers();
 }

 void mouse(int botton,int state,int x,int y)
 {
    teapotX = (x-150)/150.0;
    teapotY = -(y-150)/150.0;
 }

int main(int argc, char **argv)
{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();

}



5.依照小畫家的座標做圖案出來
程式碼 ↓
#include <GL/glut.h>
void display()
 {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glBegin(GL_POLYGON);
        glVertex2f( (171-150)/150.0 , -( 93-150)/150.0 );///170,89
        glVertex2f( (181-150)/150.0 , -(124-150)/150.0 );///182,123
        glVertex2f( (218-150)/150.0 , -(127-150)/150.0 );///218,127
        glVertex2f( (190-150)/150.0 , -(148-150)/150.0 );///190,148
        glVertex2f( (197-150)/150.0 , -(182-150)/150.0 );///197,182
        glVertex2f( (168-150)/150.0 , -(168-150)/150.0 );///168,163
        glVertex2f( (140-150)/150.0 , -(182-150)/150.0 );///140,182
        glVertex2f( (151-150)/150.0 , -(148-150)/150.0 );///151,148
        glVertex2f( (119-150)/150.0 , -(126-150)/150.0 );///119,126
        glVertex2f( (155-150)/150.0 , -(124-150)/150.0 );///155,124
    glEnd();
    glutSwapBuffers();
 }

 void mouse(int botton,int state,int x,int y)
 {

 }

int main(int argc, char **argv)
{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();

}







沒有留言:

張貼留言