week05 T-R-T 特定軸轉
第一堂課
https://jsyeh.org/3dcg10/ 下載deta,win32(解壓縮)
並把week04-1的程式碼貼上並修改
#include <GL/glut.h>
float angle = 0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3f(1, 0, 0);
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glTranslatef(0.8, 0, 0);
glutSolidTeapot( 0.3 );
glPopMatrix();
glColor3f(0, 1, 0);
glPushMatrix();
glTranslatef(0.8, 0, 0);
glRotatef(angle*1.5, 0, 0, 1);
glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
第二堂課
跑openGL程式
第三堂課
開啟新專案 week05-2_T-R-T robot
並貼上week05-1 並修改
#include <GL/glut.h>
float angle = 0;
void myCube()
{
glPushMatrix();
glScalef(0.5, 0.2, 0.2);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
myCube();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
得到一個旋轉的方塊
製作機械手臂
#include <GL/glut.h>
float angle = 0;
void myCube()
{
glPushMatrix();
glScalef(0.5, 0.2, 0.2);
glutSolidCube(1);
glPopMatrix();
}
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3f(1,1,1);
glutSolidCube(1);
glPushMatrix();
glTranslatef(0.5, 0.5, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
glColor3f(0,1,0);
myCube();
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week03");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
增加程式碼=>將0.5改成-0.5
glPushMatrix();
glTranslatef(-0.5, 0.5, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
glColor3f(0,1,0);
myCube();
glPopMatrix();
沒有留言:
張貼留言