OSG学习:移动/缩放/旋转模型
来源:互联网 发布:淘宝开店企业交税 编辑:程序博客网 时间:2024/05/16 18:36
移动和缩放以及旋转都是对矩阵进行操作,这些操作如果要叠加直接矩阵相乘就可以了。
下面的示例代码中,加入了四个bignathan,一个是默认加入在最中间,一个向上移2单位,一个是向下移2单位且缩放0.5倍,另一个是向右4单位,缩放0.5且平躺45度。
#include<osgDB\ReadFile>#include<osgViewer\Viewer>#include<osg\Node>#include<osg\MatrixTransform>void main(){ osgViewer::Viewer viewer; osg::ref_ptr<osg::Group> root = new osg::Group(); osg::ref_ptr<osg::Node> bignathan = osgDB::readNodeFile("bignathan.osg"); osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform; trans->setMatrix(osg::Matrix::translate(0, 0, 2)); trans->addChild(bignathan.get()); osg::ref_ptr<osg::MatrixTransform> scale = new osg::MatrixTransform; scale->setMatrix(osg::Matrix::scale(0.5, 0.5, 0.5)*osg::Matrix::translate(0, 0, -2)); scale->addChild(bignathan.get()); osg::ref_ptr<osg::MatrixTransform> rot = new osg::MatrixTransform; rot->setMatrix(osg::Matrix::rotate(osg::DegreesToRadians(45.0), 1, 0, 0)*osg::Matrix::scale(0.5, 0.5, 0.5)*osg::Matrix::translate(4, 0, -2)); rot->addChild(bignathan.get()); root->addChild(bignathan.get()); root->addChild(trans.get()); root->addChild(scale.get()); root->addChild(rot.get()); viewer.setSceneData(root.get()); viewer.realize(); viewer.run();}
结果图:
阅读全文
0 0
- OSG学习:移动/缩放/旋转模型
- osg模型的移动,旋转和缩放
- osg中设置模移动旋转缩放
- 3、对模型的移动,缩放,以及旋转
- 在PC或者手机端旋转、移动、缩放模型
- osg中使用MatrixTransform来实现模型的平移/旋转/缩放
- 图片 旋转,缩放,移动
- CGAffineTransform-缩放、移动、旋转
- CityMaker学习教程13 osg模型的移动
- OSG学习笔记11 物体控制—对点选物体进行平移、缩放、旋转
- Unity通过射线碰撞选择模型,然后控制模型的移动、旋转、缩放等动作
- Unity移动旋转比例缩放
- 视图的移动,旋转,缩放
- unity 移动端 缩放 旋转
- 旋转移动缩放游戏对象
- 摄像机的旋转,移动,缩放
- unity 鼠标移动 缩放,旋转
- 移动和旋转模型
- DataNode寻找NameNode
- docker镜像中的定时任务
- 深入理解javascript原型和闭包
- sklearn.preprocessing.PolynomialFeatures
- 剑指offer——正则表达式匹配(好题)
- OSG学习:移动/缩放/旋转模型
- 【JSP页面】提示用户字数限制
- Git协同开发之项目同步
- 欢迎使用CSDN-markdown编辑器
- C++模拟实现静态顺序表
- ThinkPhP5 学习(28)API调试
- [技术讨论] LTE伪基站横空出世,深度揭秘LTE伪基站原理
- Android TV下NFS和Samba挂载
- anycasting砂铸\