Step1 上週複習
code:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week05step");
glutDisplayFunc(display);
glutMainLoop();
}
(茶壺手動自轉)
code:
#include <GL/glut.h>///開啟GL外掛
#include <stdio.h>
float angle=0;
void motion(int x, int y)
{
angle=x;///改變angle值
glutPostRedisplay();///重畫
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理畫面
glPushMatrix();
glRotatef(angle,0,0,1);///轉動
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();///秀出東西
}
int main(int argc, char**argv)///主函式
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("05160400Week5");
glutMotionFunc(motion);
glutDisplayFunc(display);
glutMainLoop();
}
Step2 改變位置
部分code:
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理畫面
glPushMatrix();
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.5,-0.1,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();///秀出東西
}
Step3 茶壺關節
code:
#include <GL/glut.h>///開啟GL外掛
#include <stdio.h>
float angle=0;
void motion(int x, int y)
{
angle=x;///改變angle值
glutPostRedisplay();///重畫
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理畫面
glPushMatrix();
glutSolidTeapot(0.3);
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glutSwapBuffers();///秀出東西
}
int main(int argc, char**argv)///主函式
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("05160400Week5");
glutMotionFunc(motion);
glutDisplayFunc(display);
glutMainLoop();
}
Step4 多茶壺關節
code:
#include <GL/glut.h>///開啟GL外掛
#include <stdio.h>
float angle=0;
void motion(int x, int y)
{
angle=x;///改變angle值
glutPostRedisplay();///重畫
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理畫面
glPushMatrix();
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glPopMatrix();///還原矩陣
glutSwapBuffers();///秀出東西
}
int main(int argc, char**argv)///主函式
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("05160400Week5");
glutMotionFunc(motion);
glutDisplayFunc(display);
glutMainLoop();
}
#include <GL/glut.h>///開啟GL外掛
#include <stdio.h>
float angle=0;
void motion(int x, int y)
{
angle=x;///改變angle值
glutPostRedisplay();///重畫
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理畫面
glPushMatrix();
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.5,0.15,0);
glRotatef(angle,0,0,1);///轉動
glTranslatef(0.45,-0.08,0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
glPopMatrix();///還原矩陣
glutSwapBuffers();///秀出東西
}
int main(int argc, char**argv)///主函式
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("05160400Week5");
glutMotionFunc(motion);
glutDisplayFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言