1.
2.#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();///push備份矩陣
glTranslatef(0.3, 0.2, 0);///移動會累積
glColor3f(1, 0, 0);
glutSolidTeapot(0.3);
glPopMatrix();///pop還原矩陣
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutMainLoop();
}
3.
#include <GL/glut.h>
void Teapot(float x, float y)
{
glPushMatrix();///push備份矩陣
glTranslatef(x, y, 0);///移動會累積
glutSolidTeapot(0.3);
glPopMatrix();///pop還原矩陣
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 0, 0);
Teapot(+0.5, +0.5);
Teapot(+0.5, -0.5);
Teapot(-0.5, -0.5);
Teapot(-0.5, +0.5);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutMainLoop();
}
4.
#include <GL/glut.h>
#include <stdio.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void mouse(int btn, int state, int x, int y)
{
printf("%d %d %d %d\n", btn, state, x, y);
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutMouseFunc(mouse);///滑鼠
glutMainLoop();
}
#include <GL/glut.h>
#include <stdio.h>
int mouseX=0, mouseY=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1, 1, 0);
glPushMatrix();///減一半,除一半,Y倒過來
glTranslatef((mouseX-150)/150.0, -(mouseY-150)/150.0, 0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
}
void mouse(int btn, int state, int x, int y)
{
//printf("%d %d %d %d\n", btn, state, x, y);
mouseX=x;
mouseY=y;
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week04");
glutDisplayFunc(display);
glutMouseFunc(mouse);///滑鼠
glutMainLoop();
}
沒有留言:
張貼留言