资源简介
交互式 实体模型 简单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读取显示obj模型_VS2010
- 运用Opengl和C实现一个人体面部的三维
- opengl实现分形山脉
- opengl显示网格模型
- OpenGL扩展包实现接收鼠标滚轮输入功
- OpenGL + freeglut + glew + glm 環境配置
- openGl模拟太阳系旋转的小程序
- 支持滚轮事件的OpenGL的glut库
- OPENGL(GLAUX+GLUT)库文件等等
- 运动的自行车OpenGL
- 时钟绘制OpenGL
- opengl几个经典程序
- Foundations Of 3D Computer Graphics (高清P
- OpenGL图形绘制.doc
- glut.lib glut32.lib opengl.lib opengl32.lib gl
- openGl绘制茶壶纹理
- opengl math3d
- opengl实现的光线跟踪
- 利用OpenGL实现屏幕坐标与世界坐标的
- OpenGL画花瓶,可以填充,选择颜色 代
- 基于OpenGL的B样条曲线曲面的绘制
- 基于OpenGL虚拟校园漫游系统的设计与
- 用OPENGL读取MS3D文件
- OpenGL安装文件及安装方法
- openGL Matrix类的实现,包括和四元数、
- OPENGL五角星
- opengl雪花代码
- OpenGL的B样条、贝塞尔曲线和贝塞尔曲
- opengl\\雷达三维成像和雷达视觉
- 用opengl编写的一个小游戏
评论
共有 条评论