在本课题的研究过程中,通过视点变换和模型变换相结合,来达到课程设计的要求。但是,遇到很多问题,比如当需要的转换是一个序列时,即既有平移变换又有旋转变换的时候,这两个命令的顺序对实际的模型操作的作用是不同的,比如下面这段代码:
......
glTranslatef(0.0,0.0,20.0);              //平移命令
glRotatef(45.0,1.0,0.0,0.0);            //旋转命令
画电机模型;......
那么它的实际效果如图4.2所示:   
图4.2  平移命令在前                   图4.3  旋转命令在前
而当变换两个平移命令的顺序时,实际的效果如上图4.3所示:
这就使本课题中如果要实现对电机模型的旋转和平移变换,则顺序一定要是平移命令在前面,旋转命令在后面,这样才可以实现电机各部分的自转效果(即绕三个轴的旋转),也就是图4.2的效果而不是图4.3的效果。
4.2  本课题的难点—1.实现自由控制电机及其各部分转动2.电机各部分组成一个整体3.电机各部分的选取和拆卸
在成功导入和画出电机各部分模型之后,为了体现其3D效果,需要用鼠标控制模型绕中心转动,这里要用到MessageTranslate类,其作用是反馈鼠标的运动位移信息,程序中我用的是g_fSpinX和g_fSpinY这个变量来保存鼠标在X和Y方向的总的位移量,实现语句是:      g_fSpinX-=(ptCurrentMousePosit.x-ptLastMousePosit.x);
g_fSpinY-=(ptCurrentMousePosit.y-ptLastMousePosit.y);然后将这两个变量作为旋转函数glRotatef的参数,语句是:
glRotatef( -g_fSpinY, 0.0f, 1.0f, 0.0f );
glRotatef( -g_fSpinX, 1.0f, 0.0f, 0.0f );不得不指出的是不能忘记在这个窗
上一篇:Multisim脑电信号检出的电路设计与制作仿真
下一篇:PIC+AT89S52单片机超声波倒车雷达的设计

认知无线电网络中基于双...

基于TCP/IP技术的转向架振动测试系统设计

基于涡旋电磁波的新型雷达成像技术研究

波形发生技术的比较研究...

相控阵雷达天线自适应置零技术的研究

基于蓝牙和语音识别技术...

基于VR技术的通信虚拟实验室研究+源程序

中国古代秘书擅权的发展和恶变

国内外无刷直流电动机研究现状

《醉青春》导演作品阐述

浅谈新形势下妇产科护理...

高校网球场馆运营管理初探【1805字】

辩护律师的作证义务和保...

多元化刑事简易程序构建探讨【9365字】

拉力采集上位机软件开发任务书

谷度酒庄消费者回访调查问卷表

浅谈传统人文精神茬大學...