week 03
第一堂課
前往https://jsyeh.org/3dcg10//
下載deta win32
解壓後把deta加進windows
第2堂課
創立一個GLUT專案,把原本的170行程式刪掉,並將上周的10行程式貼上
#include <GL/glut.h>
void dispaly()
{
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(dispaly);
glutMainLoop();
}
移動(增加程式碼)
{
glPushMatrix();
glTranslatef( 0.5, 0.5, 0);
glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
第3堂課
開一個新的project week03-2_translate_mouse
把剛剛的專案程式貼上
#include <GL/glut.h>
float X=0, Y=0, Z=0;
void dispaly()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix();
glTranslatef( X, Y, Z );
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;
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutMouseFunc(mouse);
glutDisplayFunc(dispaly);
glutMainLoop();
}
老師的範例
#include <GL/glut.h>
#include <stdio.h>
float X=0, Y=0, Z=0;
void dispaly()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutSwapBuffers();
}
void mouse( int button, int state, int x, int y )
{
X = (x-150)/150.0;
Y = -(y-150)/150.0;
if(state==GLUT_DOWN) printf(" glVertex2f(%.2f, %.2f);\n", x, y);
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutMouseFunc(mouse);
glutDisplayFunc(dispaly);
glutMainLoop();
}
沒有留言:
張貼留言