資源簡介
利用openGL 畫一個機器人,加上光照附上材質及其相關運動~~

代碼片段和文件信息
//本程序實現了簡單機器人模型
#include
#include
#include
#include
static?float?theta[10]={0};?
float?flagI=1;
void?init(void)
{
GLfloat?mat_specular[]={1.01.00.01.0};
GLfloat?mat_shiness[]={50.0};
GLfloat?light_position[]={?5.05.05.01.0};
GLfloat?light_ambient[]={1.01.00.01.0};
GLfloat?light_diffuse[]={1.01.00.01.0};
GLfloat?light_specular[]={1.00.00.01.0};
glClearColor?(0.0?0.0?0.0?0.0);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONTGL_SPECULARmat_specular);
glMaterialfv(GL_FRONTGL_SHININESSmat_shiness);
glLightfv(GL_LIGHT0GL_POSITIONlight_position);
glLightfv(GL_LIGHT0GL_AMBIENTlight_ambient);
glLightfv(GL_LIGHT0GL_DIFFUSElight_diffuse);
glLightfv(GL_LIGHT0GL_SPECULARlight_specular);
glClearDepth(?1.0?);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
}
//畫頭
void?head()
{
glPushMatrix();
glTranslatef(0.02.20.0);
glutSolidSphere(0.42016);
glPopMatrix();
}
//畫肩膀
void?shoulder()
{
glPushMatrix();
glTranslatef(0.01.80.0);
glScalef(2.60.30.5);
glutSolidCube(1.0);
glPopMatrix();
}
//畫身體
void?base()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(0.50.00.0);
glScalef(2.01.00.5);
glutSolidCube(1.0);
glPopMatrix();
}
//畫右上臂
void?right_upper_arm()
{
glPushMatrix();
glTranslatef(1.01.30.0);
glScalef(0.61.00.4);
glutSolidCube(1.0);
glPopMatrix();
}
//畫右下臂
void?right_lower_arm()
{
glPushMatrix();
glTranslatef(1.00.30.0);
glScalef(0.61.00.5);
glutSolidCube(1.0);
glPopMatrix();
}
//畫左上臂
void?left_upper_arm()
{
glPushMatrix();
glTranslatef(-1.01.30.0);
glScalef(0.61.00.4);
glutSolidCube(1.0);
glPopMatrix();
}
//畫左下臂
void?left_lower_arm()
{
glPushMatrix();
glTranslatef(-1.00.30.0);
glScalef(0.61.00.5);
glutSolidCube(1.0);
glPopMatrix();
}
//畫右上腿
void?right_upper_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-1.0-0.50.0);
glScalef(1.00.41.0);
glutSolidCube(1.0);
glPopMatrix();
}
//畫右下腿
void?right_lower_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-2.0-0.50.0);
glScalef(1.00.41.0);
glutSolidCube(1.0);
glPopMatrix();
}
//畫左上腿
void?left_upper_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-1.00.50.0);
glScalef(1.00.41.0);
glutSolidCube(1.0);
glPopMatrix();
}
//畫左下腿
void?left_lower_leg()
{
glPushMatrix();
glRotatef(90.00.00.01.0);
glTranslatef(-2.00.50.0);
glScalef(1.00.41.0);
glutSolidCube(1.0);
glPopMatrix();
}
void?display(void)
{
glClear?(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
????glEnable(GL_NORMALIZE);
//處理身體旋轉
glRotatef(theta[0]0.01.00.0);
shoulder();
base();
//處理頭旋轉
glPushMatrix();
glRotatef(theta[1]0.01.00.0);
head();
glPopMatrix();
//處理右上臂與右下臂的旋轉
glPushMatrix();
glTranslatef
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5561??2009-05-27?12:32??光照機器人\aa.cpp
?????文件???????3353??2009-05-31?23:45??光照機器人\aa.dsp
?????文件????????512??2009-05-31?23:53??光照機器人\aa.dsw
?????文件??????50176??2009-05-31?23:53??光照機器人\aa.ncb
?????文件??????48640??2009-05-31?23:53??光照機器人\aa.opt
?????文件???????1220??2009-05-31?23:46??光照機器人\aa.plg
?????文件?????196776??2009-05-31?23:46??光照機器人\Debug\aa.exe
?????文件?????216068??2009-05-31?23:46??光照機器人\Debug\aa.ilk
?????文件??????29485??2009-05-31?23:46??光照機器人\Debug\aa.obj
?????文件????3677444??2009-05-31?23:46??光照機器人\Debug\aa.pch
?????文件?????369664??2009-05-31?23:46??光照機器人\Debug\aa.pdb
?????文件?????140288??2009-05-31?23:53??光照機器人\Debug\vc60.idb
?????文件??????77824??2009-05-31?23:46??光照機器人\Debug\vc60.pdb
?????目錄??????????0??2009-05-31?23:46??光照機器人\Debug
?????目錄??????????0??2009-05-31?23:53??光照機器人
-----------?---------??----------?-----??----
??????????????4817011????????????????????15
- 上一篇:PCA-ICA-LDA 介紹與比較
- 下一篇:AUTOSARCAN總線網絡管理規范
評論
共有 條評論