欢迎来到天天文库
浏览记录
ID:32754582
大小:81.13 KB
页数:11页
时间:2019-02-15
《osg几何变换实验三》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、天津理工大学计算机科学与技术学院实验报吿2015至2016学年第二学期课程名称计算机图形学学号学生姓名年级专业课程号实验地点实验时间主讲教师辅导教师实验(三)实验名称几何变换软件环境VisualStudio2010OSG-3.1.0Windows7硬件环境2G内存显卡GT610CPU奔腾双核硕盘320G实验目的1.掌握平移变换、放缩变换、旋转变换、错切变换、对称变换和复合变换的基本原理。2.掌握OpenGL/OpenSceneGniph变换矩阵的操作方法3.掌握组合变换原理实验内容(应包括实验题目、实验要求、实验任务等
2、)实验题目:1.起重设备工作时的运动过程。2.人的行走/奔跑等运动过程。3.以上任选一实验要求:1.实现人机交互功能,键入不同的键可实现不同部分的运动,模型的形状和结构自行设计,雷同视为抄袭。2.提交电子版实验报告及工程代码,试验报告模板可参考计算机学院统一模板3.提交的工程代码必须删除其中的Debug或Release文件夹实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)节点模型:丿实验步骤:1.在纸上绘制草图,建立三维坐标系,并在坐标系屮确定机器人各部分的大小及坐标,为机器人确定好空间状态;2.创建
3、MatrixTransform根节点及身体各部分的MatrixTransform子节点,各子节点下的Geode节点;3.对身体各部分基本图形进行绘制,并调整其状态;4.建立键盘事件,对不同的按键处理不同的操作,主要为前进、后退,转身;5.将程序各部分组合在一起形成完整的程序。实验结果:附录(可包括源程序清单或其它说明)源代码:ttincludettinclude#inelude^include4、sgVicwcr/Viewer>^includettinclude#ineludettinclude#include#ineludeOSg:ref_ptr〈osg::MatrixTransform5、>:root_T:r=newosg::MatrixTransform;osg:rcf_ptrhead_Tr二newosg::MatrixTreinsfoTni;OSg:ref_ptrbody_Tr=newosg::MatrixTransform;OSg:ref_ptrleft_arm_Tr二newOSg:MatrixTransform;OSg:ref_ptr〈osg::MatrixTran6、sform>right_armTr=newOSg:MatrixTransform;OSg:ref_ptrleft_leg_Tr=newOSg:MatrixTransform;OSg:ref_ptrright_leg_Tr二newOSg:MatrixTransform;classUscEvcntllemdlcr:publicosgGA::GUIEvcntllemdlcrprivate:floatanglel;floatangle;fl7、oatmove;floatscale;intsingal;public:UseEventHandler(){anglcl=0;angle=0;move=l;scale二1;singal=0;}staticvoidrotate(floatangle,osg::MatrixTransformjoint)osg::MatrixzRot;zRot.makeRotate(angle,1.0,0.0,0.0);joint->sctMatrix(zRotjoint->gctMatrix());virtualboolhandle(co8、nstosgGA::GUIEventAdapter&ea,osgGA::GUTActionAdapter&aa){switch(ea.getEventType())caseosgGA::GUTEventAdapter::KEYDOWN:angle=osg::PI2/3;if(ea.getKey()二二'w'){if(singeil
4、sgVicwcr/Viewer>^includettinclude#ineludettinclude#include#ineludeOSg:ref_ptr〈osg::MatrixTransform
5、>:root_T:r=newosg::MatrixTransform;osg:rcf_ptrhead_Tr二newosg::MatrixTreinsfoTni;OSg:ref_ptrbody_Tr=newosg::MatrixTransform;OSg:ref_ptrleft_arm_Tr二newOSg:MatrixTransform;OSg:ref_ptr〈osg::MatrixTran
6、sform>right_armTr=newOSg:MatrixTransform;OSg:ref_ptrleft_leg_Tr=newOSg:MatrixTransform;OSg:ref_ptrright_leg_Tr二newOSg:MatrixTransform;classUscEvcntllemdlcr:publicosgGA::GUIEvcntllemdlcrprivate:floatanglel;floatangle;fl
7、oatmove;floatscale;intsingal;public:UseEventHandler(){anglcl=0;angle=0;move=l;scale二1;singal=0;}staticvoidrotate(floatangle,osg::MatrixTransformjoint)osg::MatrixzRot;zRot.makeRotate(angle,1.0,0.0,0.0);joint->sctMatrix(zRotjoint->gctMatrix());virtualboolhandle(co
8、nstosgGA::GUIEventAdapter&ea,osgGA::GUTActionAdapter&aa){switch(ea.getEventType())caseosgGA::GUTEventAdapter::KEYDOWN:angle=osg::PI2/3;if(ea.getKey()二二'w'){if(singeil
此文档下载收益归作者所有