---------------------------------------------------------------------------------------------------------------------------
*今日小考: TRT
筆記/ (反著寫上去)
1) 把物件移到中心點( x,y,z)
2) 讓物件旋轉( 度,0,0,1)
3) 把物件移到想要的點上(x,y,z)
---------------------------------------------------------------------------------------------------------------------------
▧為了再次熟悉TRT轉動,老師帶我們寫了下面的茶壺
#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere(0.02,30,30);
glPushMatrix();
glRotatef(angle,0,0,1);
glTranslatef(0.46,-0.05,0); //把茶壺把手移動到中心點
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}---------------------------------------------------------------------------------------------------------------------------▧修改上面的程式碼嘗試讓兩個茶壺掛在一起#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere(0.02,30,30);
glutSolidTeapot(0.3); //身體
glPushMatrix();
glTranslatef(0.49,0.13,0);
glRotatef(angle,0,0,1);
glTranslatef(0.46,-0.05,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle++;
}
▧修改上面的程式碼嘗試讓兩個茶壺掛在一起
#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere(0.02,30,30);
glutSolidTeapot(0.3); //身體
glPushMatrix();
glTranslatef(0.49,0.13,0);
glRotatef(angle,0,0,1);
glTranslatef(0.46,-0.05,0);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();
angle++;
}
利用translate函式把茶壺利用TRT掛到壺嘴上










沒有留言:
張貼留言