资源简介
交互式 实体模型 简单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
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论