• OsgOsg实例牛对象缩放效果(Qt5.14.2+osgEarht3.6.5+win10)No8zoom


    相关资料:

    https://www.cnblogs.com/ylwn817/articles/1973396.html    osg矩阵变换节点-----平移旋转缩放

    代码实例:

    .pro

     1 QT       += core gui widgets
     2 TARGET = TestOsgQt
     3 TEMPLATE = app
     4 DEFINES += QT_DEPRECATED_WARNINGS
     5 CONFIG += c++11
     6 
     7 SOURCES += \
     8         main.cpp
     9 
    10 HEADERS +=
    11 
    12 OsgDir = D:\\RuanJian\\osg365R
    13 CONFIG(release, debug|release) {
    14         LIBS += -L$${OsgDir}/lib/ -losgDB -losgViewer -lOpenThreads -losgAnimation -losg \
    15                                   -losgEarth -losgEarthAnnotation -losgEarthFeatures -losgEarthSymbology -losgEarthUtil \
    16                                   -losgQOpenGL -losgUtil -losgText -losgTerrain -losgSim \
    17                                   -losgShadow -losgParticle -losgManipulator -losgGA -losgFX \
    18                                   -losgWidget
    19 } else {
    20         LIBS += -L$${OsgDir}/debug/lib/ -losgDBd -losgViewerd -lOpenThreadsd -losgAnimationd -losgd \
    21                                   -losgEarthd -losgEarthAnnotationd -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthUtild \
    22                                   -losgQOpenGLd -losgUtild -losgTextd -losgTerraind -losgSimd \
    23                                   -losgShadowd -losgParticled -losgManipulatord -losgGAd -losgFXd \
    24 }
    25 
    26 
    27 INCLUDEPATH += $${OsgDir}/include
    28 DEPENDPATH += $${OsgDir}/include
    View Code

    main.cpp

     1 #include <QApplication>
     2 
     3 #include <osg/Node>
     4 #include <osg/Group>
     5 #include <osg/Geode>
     6 #include <osg/Geometry>
     7 #include <osg/Texture2D>
     8 #include <osg/StateSet>
     9 #include <osg/PositionAttitudeTransform>
    10 #include <osgViewer/Viewer>
    11 #include <osgDB/ReadFile>
    12 #include <osgParticle/PrecipitationEffect>
    13 // 雨雪效果
    14 #include <osg/MatrixTransform>
    15 // 粒子效果
    16 #include <osgParticle/PrecipitationEffect>
    17 #include <osgParticle/Particle>
    18 #include <osgParticle/LinearInterpolator>
    19 #include <osgParticle/ParticleSystem>
    20 #include <osgParticle/RandomRateCounter>
    21 #include <osgParticle/PointPlacer>
    22 #include <osgParticle/RadialShooter>
    23 #include <osgParticle/ModularEmitter>
    24 #include <osgParticle/ParticleSystemUpdater>
    25 #include <osgParticle/ModularProgram>
    26 #include <osgUtil/Optimizer>
    27 #include <osgUtil/Simplifier>
    28 #include <osgParticle/FireEffect>
    29 //
    30 #include <osg/Fog>
    31 #include <osgDB/ReadFile>
    32 #include <osgViewer/Viewer>
    33 #include <osg/StateSet>
    34 #include <osg/StateAttribute>
    35 #include <osgViewer/ViewerEventHandlers>
    36 #include <osgWidget/ViewerEventHandlers>
    37 
    38 int main(int argc, char *argv[])
    39 {
    40     osgViewer::Viewer viewer;
    41     osg::ref_ptr<osg::Group> root=new osg::Group();
    42 
    43     osg::ref_ptr<osg::Node> osgcool=osgDB::readNodeFile("D:\\osgFiles\\cow.osg");
    44 
    45     osg::ref_ptr<osg::MatrixTransform> trans=new osg::MatrixTransform();
    46     // osg::Matrix::scale(0.5,0.5,0.5)表示缩放的比例,也就是原来物体的一般大小
    47     // *osg::Matrix::translate(0,-10,0)表示平移正前
    48     trans->setMatrix(osg::Matrix::scale(0.5,0.5,0.5)*osg::Matrix::translate(0,-10,0));
    49     trans->addChild(osgcool.get());
    50 
    51     root->addChild(osgcool.get());
    52     root->addChild(trans.get());
    53 
    54     viewer.setUpViewInWindow(50,50,500,400);
    55     viewer.setSceneData(root.get());
    56     viewer.realize();
    57     viewer.run();
    58 }
    View Code
  • 相关阅读:
    判断单链表中是否有环,找到环的入口节点的理论证明
    交叉熵代价函数(作用及公式推导)
    C#调用C++、Opencv的Dll
    腾讯机器学习一面面经
    C#调用C++类库的几种方式
    2017年腾讯基础研究笔试感受
    关于开源库或者SDK的文档问题
    卷积神经网络Lenet-5实现
    NULL、0、nullptr 区别分析
    C++中,new/delete和malloc/free的区别
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/15879555.html
Copyright © 2020-2023  润新知