Osg-Osg实例牛对象平移效果(Qt5.14.2+osgEarht3.6.5+win10)-No7-translation


相关资料:

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

注意:

osg方向如左图所示,x轴表示屏幕水平方向,y轴表示和屏幕垂直方向即屏幕里面方向,z轴表示屏幕垂直方向,每个箭头指向表示正方向 

代码实例:

.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

main.cpp

 1 #include 
 2 
 3 #include 
 4 #include 
 5 #include 
 6 #include 
 7 #include 
 8 #include 
 9 #include 
10 #include 
11 #include 
12 #include 
13 // 雨雪效果
14 #include 
15 // 粒子效果
16 #include 
17 #include 
18 #include 
19 #include 
20 #include 
21 #include 
22 #include 
23 #include 
24 #include 
25 #include 
26 #include 
27 #include 
28 #include 
29 //
30 #include 
31 #include 
32 #include 
33 #include 
34 #include 
35 #include 
36 #include 
37 
38 int main(int argc, char *argv[])
39 {
40     osgViewer::Viewer viewer;
41     osg::ref_ptr root=new osg::Group();
42     osg::ref_ptr osgcool=osgDB::readNodeFile("D:\\osgFiles\\cow.osg");
43 
44     osg::ref_ptr trans=new osg::MatrixTransform();
45     // 就是用来平移物体,这个表示象Z轴正方向平移也就是屏幕正上方。
46     trans->setMatrix(osg::Matrix::translate(0,0,20));
47     trans->addChild(osgcool.get());
48 
49     root->addChild(osgcool.get());
50     root->addChild(trans.get());
51 
52     viewer.setUpViewInWindow(50,50,500,400);
53     viewer.setSceneData(root.get());
54     viewer.realize();
55     viewer.run();
56 }

相关