• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: OpenGL  

资源简介

交互式 实体模型 简单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

评论

共有 条评论