资源简介
用鼠标选中物体后,会出现x,y,z三个轴,点击轴可以沿着相应方向平移物体。
代码片段和文件信息
// moveobjectTest.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “gltools.h“ // OpenGL toolkit
#define TRUE 1
#define FALSE 0
///////////////////////////////
// Define object names
#define SUN 1
#define CUBE 2
#define xAxis 6
#define yAxis 7
#define zAxis 8
struct MYPOINT /*用于记录鼠标位置*/
{
int x;
int y;
};
//用于记录移动的向量
struct MOVE_VECTOR
{
float xMove;
float yMove;
float zMove;
};
//物体类
class object
{
public:
object();
void moveAlongX(float xamount); //沿着x轴移动的函数
void moveAlongY(float yamount);
void moveAlongZ(float zamount);
float xMoveyMovezMove; //记录该物体应沿着x/y/z轴移动多少
int selected; //记录物体是否被选中(初始化为FALSE)
int xSelected; //记录物体x轴是否被选中
int ySelected; //记录物体y轴是否被选中
int zSelected; //记录物体z轴是否被选中
};
object::object()
{
selected=FALSE;
xSelected=FALSE;
ySelected=FALSE;
zSelected=FALSE;
xMove=0; yMove=0; zMove=0;
}
object sun; //声明类对象sun
object cube; //声明类对象cube
struct MYPOINT oldpt={ -1 -1};
int l_button_down=FALSE; /*记录鼠标左键按下的状态*/
//绘制箭头,在绘制坐标轴函数中被调用的
void DrawArrow()
{
GLUquadricObj *qObj;
qObj = gluNewQuadric();
gluQuadricNormals(qObj GLU_SMOOTH);
gluCylinder(qObj11151616);
gluDeleteQuadric(qObj);
glPushMatrix();
glTranslatef(0015);
glutSolidCone(221616);
glPopMatrix();
}
//绘制窗口中彩色正方体的代码,可忽略之
///////////////////////////////////////////////////////////
// 画那个黄色的球的,可以忽略
void DrawSphere(float radius)
{
GLUquadricObj *pObj;
pObj = gluNewQuadric();
gluQuadricNormals(pObj GLU_SMOOTH);
gluSphere(pObj radius 26 13);
gluDeleteQuadric(pObj);
}
//画正方体的,只是每面颜色不一样而已,可以忽略
void DrawColorCube()
{
glBegin(GL_QUADS); /*画一个彩色的正方体*/
/*front*/
glColor3f( 0.0f 0.0f 1.0f);
glVertex3f(-1.0f-1.0f 1.0f);
glVertex3f( 1.0f-1.0f 1.0f);
glVertex3f( 1.0f 1.0f 1.0f);
glVertex3f(-1.0f 1.0f 1.0f);
/*back*/
glColor3f( 0.0f 1.0f 0.0f);
glVertex3f(-1.0f-1.0f-1.0f);
glVertex3f(-1.0f 1.0f-1.0f);
glVertex3f( 1.0f 1.0f-1.0f);
glVertex3f( 1.0f-1.0f-1.0f);
/*top*/
glColor3f( 1.0f 0.0f 0.0f);
glVertex3f(-1.0f 1.0f-1.0f);
glVertex3f(-1.0f 1.0f 1.0f);
glVertex3f( 1.0f 1.0f 1.0f);
glVertex3f( 1.0f 1.0f-1.0f);
/*bottom*/
glColor3f( 0.0f 1.0f 1.0f);
glVertex3f(-1.0f-1.0f-1.0f);
glVertex3f( 1.0f-1.0f-1.0f);
glVertex3f( 1.0f-1.0f 1.0f);
glVertex3f(-1.0f-1.0f 1.0f);
/*right*/
glColor3f( 1.0f 0.0f 1.0f);
glVertex3f( 1.0f-1.0f-1.0f);
glVertex3f( 1.0f 1.0f-1.0f);
glVertex3f( 1.0f 1.0f 1.0f);
glVertex3f( 1.0f-1.0f 1.0f);
/*left*/
glColor3f( 1.0f 1.0f 0.0f);
glVertex3f(-1.0f-1.0f-1.0f);
glVertex3f(-1.0f-1.0f 1.0f);
glVertex3f(-1.0f 1.0f 1.0f);
glVertex3f(-1.0f 1.0f-1.0f);
glEnd();
}
//绘制坐标轴
void DrawAxis()
{
glPushMatrix();
//glTranslatef(0010);
glRotatef(20
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6648 2011-12-10 22:49 moveob
文件 663 2011-12-09 14:09 moveob
文件 728 2011-12-09 14:09 moveob
文件 621 2011-12-10 22:49 moveob
文件 60279 2011-12-10 22:49 moveob
文件 3211264 2011-12-09 14:09 moveob
文件 65 2011-12-10 22:49 moveob
文件 11529 2011-12-09 14:09 moveob
文件 388096 2011-12-10 22:49 moveob
文件 167936 2011-12-10 22:49 moveob
文件 14084 2011-12-10 22:49 moveob
文件 4519 2011-12-09 14:08 moveob
文件 1413 2011-12-10 22:49 moveob
文件 1225 2011-12-09 14:08 moveob
文件 219 2011-12-09 14:08 moveob
文件 233 2011-12-09 14:08 moveob
文件 498 2011-12-09 14:08 moveob
目录 0 2011-12-10 22:49 moveob
目录 0 2011-12-10 22:49 moveob
----------- --------- ---------- ----- ----
3870020 19
- 上一篇:汽轮机调速系统试验与模型参数辨识研究
- 下一篇:s7-300累计流量功能块
相关资源
- 基于opengl es 的显示gif的
- OpenGL编程指南(第八版)中文高清晰
- OpenGL精美房屋,落雪其上
- OpenGL光照,多种情况下的建立
- vlc opengl播放视频
- Opengl写的3d人物模型
- OPENGL学习 3D小雪人
- opengl动态云彩的模拟
- nvidia-opengl-rdp 英伟达显卡 rdp 远程桌面
- OpenGL模型视图矩阵演示
- 基于VC_的OpenGL三维动画仿真及场景漫
- OpenGL仿微信视频聊天
- OpenGL预览摄像头
- OpenGl 会走路的机器人
- opengl 做的很漂亮的一棵树,用分形算
- 3ds模型导入opengl,实现旋转平移缩放
- opengl中点画圆法
- opengl编程指南第7版源代码
- 3D酷炫屏幕保护程序OpenGL
- OpenGL文件.zip
- 配置OpenGL以及glaux所需资源.h.dll
- luweiqi素材
- VS2017&OpenGL;环境搭建
- OpenGL 顶点数组+拾取
- openGL配置资源文件,含32/64位
- GLPrint_demo
- 圆球圆环构造opengl函数
- opengl画圆柱体直接函数法,逼近法
- openGl立方体纹理贴图
- OpenGL 库glut读取obj文件并使用显示列表
评论
共有 条评论