去到https://jsyeh.org/3dcg10/ 下載[data][win32] /將data資料夾放在window裡面
開啟transformation.exe試試看
車車1:
紅色的部分:第一個0.0部分是旋轉用的(旋轉)
黃色的部分:1.49是將車子拉長長胖(長胖的)
藍色的部分:這台藍色車子(藍色車子)
車車2:(改變旋轉移動軸)
紅色的部分:第一個141.0部分是旋轉用的(整個旋轉)
綠色的部分:0.64原本是0(移動到右邊的)
黃色的部分:1.49是將車子拉長長胖(長胖的)
藍色的部分:這台藍色車子(藍色車子)
第一個程式
去到桌面葉老師上課用軟體 / 將freegult壓縮檔解壓縮 / 將freegult資料夾放置桌面
將freegult 內的lib內的 / libfreegult.a複製 / 改名為libgult32.a
新增一個glut專案 / 取名為week05-1_TRT_rotate_translate
///week05-1_TRT_rotate_translate
///把上週week04-1拿來用
#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glColor3f(0,1,0);///綠色的
glPushMatrix();
glTranslatef(0.8,0,0);///最後是綠色的移動
glRotated( angle, 0, 0, 1);///改對z軸轉
glutSolidTeapot( 0.3 );
glPopMatrix();
glColor3f(1,0,0);///紅色的
glPushMatrix();
glRotated( angle, 0, 0, 1);///改對z軸轉///最後是紅色的轉動
glTranslatef(0.8,0,0);
glutSolidTeapot( 0.3 );
glPopMatrix();
glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week05");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
第二個程式(使用老師的範例)
使用老師傳的processing範例 / 畫出身體、頭以及手臂 / 按空白鍵使手臂轉動
(但是要換成英文輸入法)
4.把轉動的手臂,掛在肩膀上
5.再世界對z軸旋轉,手臂擺好後像,關節在轉動
下週3/22考試!!!
glPushMatrix();
glTranslatef(-0.5,0.9,0); (3)最後,把轉動的手肘,掛到正確的位置
glRotate(-45,0,0,1); (2)轉動,要小心正負號,還有轉動軸
glTranslatef(-0.8,0.9,0); (1)把手肘中心,放到世界中心
drawHand();
glPopMatrix();
每一條都20分
第三個程式
///week05-1_TRT_robot 使用week05-1的程式
///畫出大的身體、手臂
#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glColor3f(0,1,0);///綠色的身體
glPushMatrix();
glutSolidCube(0.5);
glPushMatrix();
glTranslatef(0.25,0.25,0);///(3)把整個東西掛在右上角
glRotated(angle,0,0,1);///(2)轉動
glTranslatef(0.25,0.25,0);///(1)把旋轉中心放到中心
///glTranslatef(0.5,0.5,0);///step03-3先註解掉
glColor3f(1,0,0);///紅色的手臂
glutSolidCube(0.5);
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
angle++;///角度++
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week05");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}











沒有留言:
張貼留言