資源簡介
交互式 實體模型 簡單po一段代碼
#include
#define ball1 5.0
#define jh 2.0
#define sjr 0.5
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // Don't Start the Dos Windlw
typedef float point[3];
static GLfloat theta[11] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,0.0, 0.0, 0.0

代碼片段和文件信息
#include?
#define?ball1?5.0
#define?jh?2.0
#define?sjr??0.5
#pragma?comment(?linker?“/subsystem:\“windows\“?/entry:\“mainCRTStartup\““?)???//?Don‘t?Start?the?Dos?Windlw
typedef?float?point[3];
static?GLfloat?theta[11]?=?{?0.0?0.0?0.0?0.0?0.0?0.0?0.00.0?0.0?0.0?0.0?}; /*?initial?joint?angles?*/
static?GLint?angle?=?2;
GLUquadricObj*?obj[10];
void?ball()
{
????glPushMatrix();
????gluSphere(obj[0]?ball1?100?100);
????glPopMatrix();
}
void?t1()
{
????glPushMatrix();
????glRotatef(901.00.00.0);
????glRotatef(180?0.0?1.0?0.0);
????gluCylinder(obj[1]?sjr?sjr?jh?10?10);
????glPopMatrix();
}
void?t2()
{
????glPushMatrix();
????glRotatef(90?1.0?0.0?0.0);
????glRotatef(180?0.0?1.0?0.0);
????gluCylinder(obj[2]?sjr?sjr?jh?10?10);
????glPopMatrix();
}
void?body()
{
????glPushMatrix();
????glRotated(90100);
????gluCylinder(obj[3]?3*sjr?3*sjr?2*?jh?10?10);
????glPopMatrix();
}
void?head()
{
????glPushMatrix();
????glRotated(90?1?0?0);
????gluSphere(obj[4]?0.3*ball1?100?100);
????glPopMatrix();
}
void?rh()
{
????glPushMatrix();
????glRotated(90?1?0?0);
????gluCylinder(obj[5]?sjr?sjr?2*jh?10?10);
????glPopMatrix();
}
void?lh()
{
????glPushMatrix();
????glRotated(90?1?0?0);
????gluCylinder(obj[6]??sjr?sjr?2*jh?10?10);
????glPopMatrix();
}
void?RenderScene(void)
{
????glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
????glLoadIdentity();
????glColor3f(0.0?0.0?0.0);
????glRotatef(theta[5]?0.0?1.0?0.0);
????glTranslatef(-0.1?*?theta[0]?-3.0?0.0);
????ball();
????glPushMatrix();
????glPushMatrix();
????glTranslatef(-2*sjr?0.8*ball1?0.0);
????glRotatef(theta[1]?1.0?0.0?0.0);
????t1();
????glPopMatrix();
????glPushMatrix();
????glTranslatef(2*sjr0.6*ball1?0.0);
????glRotatef(theta[2]?1.0?0.0?0.0);
????glTranslatef(0.0?1.0?0.0);
????t2();
????glPopMatrix();
????glPushMatrix();
????glTranslatef(0?2*ball1?0.0);
????body();
????glPopMatrix();
????glPushMatrix();
????glTranslatef(0?2*ball1?0.0);
????glTranslatef(0.0?1.0?0.0);
????head();
????glPopMatrix();
????glPushMatrix();
????glTranslatef(4?*?sjr?2?*?ball1?0.0);
????glRotatef(theta[3]?1.0?0.0?0.0);
????lh();
????glPopMatrix();
????glPushMatrix();
????glTranslatef(-4?*?sjr?2*ball1?0.0);
????glRotatef(theta[4]?1.0?0.0?0.0);
????rh();
????glPopMatrix();
????glPopMatrix();
????glutSwapBuffers();
}
void?Mouse(int?btn?int?state?int?x?int?y)
{
????if?(btn?==?GLUT_LEFT_BUTTON?&&?state?==?GLUT_DOWN)
????{
????????theta[angle]?-=?5.0;
???????//?if?(theta[angle]?>?360.0)?theta[angle]?-=?360.0;
????}
????if?(btn?==?GLUT_RIGHT_BUTTON?&&?state?==?GLUT_DOWN)
????{
????????theta[angle]?+=?5.0;
????????//if?(theta[angle]?360.0)?theta[angle]?+=?360.0;
????}
????RenderScene();
}
void?Menu(int?id)
{
????if?(id?10)?angle?=?id;
????if?(id?==?10)?exit(0);
}
void?ChangeSize(int?width?int
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5620??2020-05-18?15:23??circus.cpp.cpp
評論
共有 條評論