2016年3月29日 星期二

Week 04

課堂作業一

作業互評

用7-Zip解壓縮
小心別用Adobe打開
挑出你認為最好的5張上傳




























課堂作業二

網址:jsyeh/3dcg10/

glTranslatef(x,y,z);
glRotatef(角度,x,y,z);
glScalef(x,y,z);

調整旋轉方向和角度

看右手手指的旋轉方向










課堂作業三

#include <GL/glut.h>
void display()
{

  
    glClearColor(1,1,0,1);
    glClear(GL_COLOR_BUFFER_BIT);
  
  
    glTranslatef(0, 0.1, 0);
    glColor3f(1,0,0);
    glutSolidTeapot(0.3);
  
  
  
    glutSwapBuffers();

}

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


    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Hello 3D");

    glutDisplayFunc(display);
    ///glutMouseFunc(mouse);

    glutMainLoop();

}



(讓茶壺會動)


課堂作業四

#include <GL/glut.h>
float nowX=0,nowY=0;

void mouse (int button,int state, int x, int y)

{
    nowX =(x-150)/150.0; nowY=-(y-150)/150.0;

}

void display()
{


    glClearColor(1,1,0,1);

    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
   
        glTranslatef(nowX, nowY, 0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.3);

     glPopMatrix();
   
     glutSwapBuffers();

}

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


    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Hello 3D");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);

    glutMainLoop();

}



(可用滑鼠來移動)

課堂作業五

#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
float nowX=0,nowY=0;

void mouse (int button,int state, int x, int y)

{
    nowX =(x-150)/150.0; nowY=-(y-150)/150.0;
    printf(" glTranslatef(%f,%f,0);\n",nowX, nowY);

}

void display()
{


    glClearColor(1,1,0,1);

    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
        glTranslatef(nowX, nowY, 0);
        glColor3f(1,0,0);
        ///glutSolidTeapot(0.3);
         glBegin(GL_POLYGON);
            for(float angle=0;angle< 3.14159265358979*2;angle+=0.1)
            {
                glVertex2f(0.2*cos(angle),0.2*sin(angle));
            }
        glEnd();

     glPopMatrix();
    glutSwapBuffers();

}

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


    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Hello 3D");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);

    glutMainLoop();

}

(用for 迴圈跑出圓形並印出座標位置)

沒有留言:

張貼留言