资源简介

用鼠标选中物体后,会出现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  moveobjectTest\Debug\BuildLog.htm

     文件        663  2011-12-09 14:09  moveobjectTest\Debug\moveobjectTest.exe.embed.manifest

     文件        728  2011-12-09 14:09  moveobjectTest\Debug\moveobjectTest.exe.embed.manifest.res

     文件        621  2011-12-10 22:49  moveobjectTest\Debug\moveobjectTest.exe.intermediate.manifest

     文件      60279  2011-12-10 22:49  moveobjectTest\Debug\moveobjectTest.obj

     文件    3211264  2011-12-09 14:09  moveobjectTest\Debug\moveobjectTest.pch

     文件         65  2011-12-10 22:49  moveobjectTest\Debug\mt.dep

     文件      11529  2011-12-09 14:09  moveobjectTest\Debug\stdafx.obj

     文件     388096  2011-12-10 22:49  moveobjectTest\Debug\vc90.idb

     文件     167936  2011-12-10 22:49  moveobjectTest\Debug\vc90.pdb

     文件      14084  2011-12-10 22:49  moveobjectTest\moveobjectTest.cpp

     文件       4519  2011-12-09 14:08  moveobjectTest\moveobjectTest.vcproj

     文件       1413  2011-12-10 22:49  moveobjectTest\moveobjectTest.vcproj.libin-PC.libin.user

     文件       1225  2011-12-09 14:08  moveobjectTest\ReadMe.txt

     文件        219  2011-12-09 14:08  moveobjectTest\stdafx.cpp

     文件        233  2011-12-09 14:08  moveobjectTest\stdafx.h

     文件        498  2011-12-09 14:08  moveobjectTest\targetver.h

     目录          0  2011-12-10 22:49  moveobjectTest\Debug

     目录          0  2011-12-10 22:49  moveobjectTest

----------- ---------  ---------- -----  ----

              3870020                    19


评论

共有 条评论