2023年5月24日 星期三

Week15

 week15-1

https://jsyeh.org/3dcg10/  進入網站 下載[data] [win32]從檔案中開啟

解壓縮並將[data]拉到[win32]裡面

開啟  Projection.exe



開啟codeblock 新增一個專案


36行

glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);

glOrtho(-ar*3,ar*3,-1*3,1*3,-100,+100);

一次只能執行一個,另一個要註解掉





 glutReshapeFunc(resize);
決定長寬座高 以Y為主X為輔




開一個新專案 week15-2_gluLookAt

#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
void reshape(int w,int h){
    glViewport(0,0,w,h);
    float ar = w/(float) h;
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(60,ar,0.01,1000);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0,0,1, 0,0,0, 0,1,0);

    glutPostRedisplay();
    }

float eyeX=0, eyeY=0;
void motino(int x,int y){
    eyeX=(x-150.0)/150.0;
    eyeY=(150.0-y)/150.0;
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(eyeX,eyeY,1, 0,0,0, 0,1,0);
    glutPostRedisplay();
}

int main(int argc,char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week15");
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMainLoop();
}




沒有留言:

張貼留言