(1)期末作品
(2)會跳舞的機器人
(3)T-R-T對關節
(4)小考TRT觀念
(5)作業問題
TODO是windows.7z裡tranformation的
TODO:
version1:打光茶壺
version2:打光茶壺右移
version3:整盤旋轉
version4:滑鼠控制
version5:掛到該放的位置
#include <GL/glut.h>
float angle=0, oldX=0, oldY=0;
void drawArm()
{
glPushMatrix();
glScalef(0.5, 0.25, 0.25);
glutSolidCube(1);
glPopMatrix();
}
void drawBody()
{
glPushMatrix();
glTranslatef(0, -0.5, 0);
glRotatef(-90, 1, 0, 0);
glutSolidCone(0.3, 0.8, 30, 30);
glPopMatrix();
}
void display()
{
{///light
GLfloat pos[] = {0, 0, -1, 0};
glLightfv(GL_LIGHT0,GL_POSITION, pos);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
}
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(0.15, 0.1, 0); glTranslatef(0.45, 0.1, 0);
glRotatef(angle, 0 , 0, 1); glRotatef(angle, 0 , 0, 1);
glTranslatef(0.25, 0, 0);///version2:move to right
drawArm();///glutSolidTeapot(0.3);
glPushMatrix();
glTranslatef(0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(0.25, 0, 0);
drawArm(); glutSolidTeapot(0.3);
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.15, 0.1, 0);
glRotatef(angle, 0 , 0, 1);
glTranslatef(-0.25, 0, 0);
drawArm();
glPushMatrix();
glTranslatef(-0.25, 0, 0);
glRotatef(angle, 0, 0, 1);
glTranslatef(-0.25, 0, 0);
drawArm(); glutSolidTeapot(0.3);
glPopMatrix();
glPopMatrix();
drawBody(); glutSolidTeapot(0.3);
glFlush();
}
void timer (int t)
{
glutTimerFunc(20, timer, 0);
///angle++;
glutPostRedisplay();
}
void mouse (int button, int state, int x, int y)
{
if(state==GLUT_DOWN)
{
oldX=x;
oldY=y;
}
}
void motion (int x,int y)
{
angle+= (x -oldX);
oldX = x;
}
int main (int argc, char ** argv)
{
glutInit(&argc, argv);
glutCreateWindow("TRT 3D");
glutDisplayFunc(display);
glutTimerFunc(20, timer , 0);
glutMouseFunc(mouse);
glutMotionFunc(motion);
glutMainLoop();
}
沒有留言:
張貼留言