week03
step03-1
https://jsyeh.org/3dcg10/(下載)
-data data.zip
-win32 window.zip
-git32.dll
解壓縮
-win32 window.zip =>下載\windows\Transformation.exe
-git32.dll =>下載\windows\data\很多模型檔
step01-2
#include <GL/glut.h>
void display()
{
glPushMatrix();///備份矩陣
glTranslatef(0.5,0,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutMainLoop();
}
step02-1
#include <GL/glut.h>
void display()
{
glPushMatrix();///備份矩陣
glTranslatef(0.5,0,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
#include <stdio.h>
void mouse (int button,int state,int x,int y)
{
printf("%d %d %d\n",button,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();
}
step02-2
#include <GL/glut.h>
float X=0, Y=0;///利用global變數,在函式之間傳值(大寫的)
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();///備份矩陣
glTranslatef(X,Y,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();
}
#include <stdio.h>
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();
}
step03-1
#include <GL/glut.h>
#include <stdio.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin( GL_POLYGON);
glVertex2f(0.213, 0.747);
glVertex2f(0.020, 0.693);
glVertex2f(0.000, 0.667);
glVertex2f(-0.120, 0.587);
glVertex2f(-0.227, 0.460);
glVertex2f(-0.247, 0.393);
glVertex2f(-0.293, 0.293);
glVertex2f(-0.300, 0.133);
glVertex2f(-0.300, -0.013);
glVertex2f(-0.293, -0.120);
glVertex2f(-0.200, -0.287);
glVertex2f(-0.060, -0.440);
glVertex2f(0.033, -0.547);
glVertex2f(0.200, -0.633);
glVertex2f(0.327, -0.647);
glVertex2f(0.413, -0.660);
glVertex2f(0.467, -0.660);
glVertex2f(0.493, -0.660);
glVertex2f(0.527, -0.660);
glVertex2f(0.507, -0.627);
glVertex2f(0.427, -0.600);
glVertex2f(0.367, -0.533);
glVertex2f(0.293, -0.373);
glVertex2f(0.207, -0.087);
glVertex2f(0.200, 0.100);
glVertex2f(0.213, 0.280);
glVertex2f(0.280, 0.367);
glVertex2f(0.427, 0.507);
glVertex2f(0.473, 0.627);
glVertex2f(0.567, 0.680);
glVertex2f(0.573, 0.700);
glVertex2f(0.553, 0.760);
glVertex2f(0.507, 0.773);
glVertex2f(0.387, 0.793);
glVertex2f(0.300, 0.787);
glVertex2f(0.213, 0.747);
glVertex2f(0.087, 0.613);
glVertex2f(-0.013, 0.580);
glVertex2f(-0.060, 0.560);
glVertex2f(-0.080, 0.447);
glEnd();
glutSwapBuffers();
}
void mouse (int button,int state,int x,int y)///小寫的
{
float X = (x-150)/150.0;
float Y = -(y-150)/150.0;///口訣:減一半,除一半,y負號
if(state==GLUT_DOWN){
printf(" glVertex2f(%.3f, %.3f);\n", 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();
}
沒有留言:
張貼留言