Week10
**week10-0_sample
0.安裝freeglut,改lib\libfreeglut.a複製成libglut32.a
1.File-New-Project,GLUT專案,week10-0_sample
**week10-1_TRT_glutSolidCube_myBody_myArm
1.File-New-Project,GLUT專案,week10-1_TRT_glutSolidCube_myBody_myArm
2.貼上week09-2
3.用glutSolidCube(0.3)用兩次, 紅色的身體,綠色的手臂
目標: 用方塊,組出今天的程式
-把身體的程式,放到void myBody()函式裡
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube(0.6);
}
void myArm(){
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutSolidCube(0.3);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glScalef(1.5,0.5,0.5);
glColor3f(0,1,0);
glutSolidCube( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
**week10-2
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube(0.6);
}
void myArm(){
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube(0.3);
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glRotatef(angle++,0,0,1);
myArm();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
**week10-3
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube(0.6);
}
void myArm(){
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube(0.3);
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glutWireCube( 0.3 );
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
**week10-4_TRT_glTranslatef_glRotatef_glTranslatef
1.File-New-Project,GLUT專案week10-4_TRT_glTranslatef_glRotatef_glTranslatef
2.貼上week10-3
3.再掛到肩上
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube( 0.6 );
}
void myArm(){
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube( 0.3 );
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glTranslatef(+0.3,+0.3,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
**week10-5_TRT_two_layers
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube( 0.6 );
}
void myArm(){
glPushMatrix();
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube( 0.3 );
glPopMatrix();
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glTranslatef(+0.3,+0.3,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPushMatrix();
glTranslatef(0.225,0,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
**week10-6_TRT_left_right
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube( 0.6 );
}
void myArm(){
glPushMatrix();
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube( 0.3 );
glPopMatrix();
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glTranslatef(+0.3,+0.3,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPushMatrix();
glTranslatef(0.225,0,0);
glRotatef(angle++,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.3,+0.3,0);
glRotatef(angle++,0,0,1);
glTranslatef(-0.225,0,0);
myArm();
glPushMatrix();
glTranslatef(-0.225,0,0);
glRotatef(angle++,0,0,1);
glTranslatef(-0.225,0,0);
myArm();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
#week10-7_TRT_mouse_motion_angle
1.File-New-Project,GLUT專案 week10-7_TRT_mouse_motion_angle
2.貼上week10-6把void display()裡的angle++都改回angle(不要++)
程式碼:
#include <GL/glut.h>
void myBody(){
glColor3f(1,0,0);
glutWireCube( 0.6 );
}
void myArm(){
glPushMatrix();
glColor3f(0,1,0);
glScalef(1.5,0.5,0.5);
glutWireCube( 0.3 );
glPopMatrix();
}
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
myBody();
glPopMatrix();
glPushMatrix();
glTranslatef(+0.3,+0.3,0);
glRotatef(angle,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPushMatrix();
glTranslatef(0.225,0,0);
glRotatef(angle,0,0,1);
glTranslatef(0.225,0,0);
myArm();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(-0.3,+0.3,0);
glRotatef(-angle,0,0,1);
glTranslatef(-0.225,0,0);
myArm();
glPushMatrix();
glTranslatef(-0.225,0,0);
glRotatef(-angle,0,0,1);
glTranslatef(-0.225,0,0);
myArm();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
void motion(int x,int y){
angle = x ;
glutPostRedisplay();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week09-1 obj gundam opencv texture lighting");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutIdleFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言