資源簡介
用鼠標選中物體后,會出現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累計流量功能塊
評論
共有 條評論