2023年3月5日 星期日

T week03

1. 打開 https://jsyeh.org/3dcg10/

下載  data data.zip  ,  win32 windows.zip


windows,data 都解壓縮

解完壓縮的data拖入windows資料夾


執行Transformation.exe


出現小黑窗跟車車就完成了

2.開codeblock GLUT-project
放入上週交的水壺

#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("GLUT Shapes");

glutDisplayFunc(display);

 glutMainLoop();

}


#include <GL/glut.h>

void display()

{

    glTranslatef(0.5,0,0);///新增這行

    glutSolidTeapot(0.3);

    glutSwapBuffers();

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);

 glutMainLoop();

}


#include <GL/glut.h>


float X=0,Y=0; 


void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); ///清背景
    glPushMatrix(); 
        glTranslatef( X, Y, 0);
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}
void mouse(int button,int state, int x, int y)
{
    X = (x-150)/150.0;
    Y = -(y-150)/150.0; ///減一半 除一半 y負號
}
int main(int argc,char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week03");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}



新增一些程式碼


#include <GL/glut.h>

void display()

{

    glColor3f(2/255.0, 247/255.0, 247/255.0);

    glBegin(GL_POLYGON);

        glVertex2f( 1, 1);

        glVertex2f(-1, 1);

        glVertex2f(-1,-1);

        glVertex2f( 1,-1);

    glEnd();


    glColor3f(24/255.0, 2/255.0, 33/255.0);

    glBegin(GL_POLYGON);

        glVertex2f( (48-100)/100.0, -(65-100)/100.0 );

        glVertex2f( (56-100)/100.0, -(78-100)/100.0 );

        glVertex2f( (98-100)/100.0, -(31-100)/100.0 );

        glVertex2f( (10-100)/100.0, -(52-100)/100.0 );

        glVertex2f( (39-100)/100.0, -(70-100)/100.0 );

        glVertex2f( (12-100)/100.0, -(45-100)/100.0 );

        glVertex2f( (100-100)/100.0, -(110-100)/100.0 );

        glVertex2f( (55-100)/100.0, -(99-100)/100.0 );

        glVertex2f( (89-100)/100.0, -(23-100)/100.0 );

        glVertex2f( (43-100)/100.0, -(56-100)/100.0 );

        glVertex2f( (69-100)/100.0, -(78-100)/100.0 );

        glVertex2f( (3-100)/100.0, -(30-100)/100.0 );

        glVertex2f( (9-100)/100.0, -(90-100)/100.0 );

        glVertex2f( (64-100)/100.0, -(12-100)/100.0 );

        glVertex2f( (98-100)/100.0, -(70-100)/100.0 );

        glVertex2f( (26-100)/100.0, -(11-100)/100.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();

}




這樣就完成了





沒有留言:

張貼留言