真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Qt+OSG三維點(diǎn)云引擎的示例分析

Qt+OSG三維點(diǎn)云引擎的示例分析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

成都創(chuàng)新互聯(lián)是專業(yè)的貴池網(wǎng)站建設(shè)公司,貴池接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行貴池網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

OSG與OsgEarth三維開發(fā)專欄


需求

??開發(fā)基于osg的三維點(diǎn)云引擎模塊。 ??1.基于x,y,z坐標(biāo)軸。 ??2.可設(shè)置原點(diǎn),設(shè)置縮放比例。 ??3.可設(shè)置y軸和z軸單位。 ??4.三軸中,XY為2D圖的水平、豎直方向;Z軸,對(duì)應(yīng)高度圖中的double型高度。 ??5.引擎中心可設(shè)置。 ??6.可設(shè)置引擎中心點(diǎn),可以拽拖繞中心點(diǎn)旋轉(zhuǎn)模型。 ??7.可以單獨(dú)以引擎中心點(diǎn)繞X,Y,Z軸旋轉(zhuǎn),拽拖時(shí)旋轉(zhuǎn). ??8.可以組合XY,XZ,YZ軸旋轉(zhuǎn),拽拖時(shí)旋轉(zhuǎn)。 ??9.根據(jù)輸入的bmp圖片以及建模的txt高度文件,呈現(xiàn)點(diǎn)云。 ??10.可復(fù)位坐標(biāo)系,可清楚導(dǎo)入的點(diǎn)云。

附贈(zèng)功能:

??11.支持導(dǎo)入圖片,隨機(jī)高度進(jìn)行點(diǎn)云模擬。 ??12.支持導(dǎo)入cvs點(diǎn)云文件(當(dāng)前僅解析點(diǎn))。

體驗(yàn)下載地址

??CSDN免積分下載地址:https://download.csdn.net/download/qq21497936/16388051 ??QQ群下載地址:1047134658(點(diǎn)擊“文件”搜索“osg3D”,群內(nèi)與博文同步更新)


Demo

??Qt+OSG三維點(diǎn)云引擎的示例分析 ??Qt+OSG三維點(diǎn)云引擎的示例分析 ??Qt+OSG三維點(diǎn)云引擎的示例分析 ??Qt+OSG三維點(diǎn)云引擎的示例分析 ??Qt+OSG三維點(diǎn)云引擎的示例分析 ??Qt+OSG三維點(diǎn)云引擎的示例分析


Demo部分源碼

#ifndef OSGWIDGET_H
#define OSGWIDGET_H

/************************************************************\
 * 控件名稱: osg3D點(diǎn)云定制
 * 控件描述:
 *          1.基礎(chǔ)三維框架
 *          2.可設(shè)置中心點(diǎn)
 *          3.鼠標(biāo)中鍵按下后可移動(dòng)中心點(diǎn)
 *          4.支持導(dǎo)入bmp,bmp+z文件,cvs點(diǎn)云文件
 *          5.支持清空數(shù)據(jù),復(fù)位視角等操作
 * 作者:紅模仿    聯(lián)系方式:QQ21497936
 * 博客地址:https://blog.csdn.net/qq21497936
 * 著作權(quán)信息
 *      作者:紅胖子(AAA紅模仿)
 *      公司:長沙紅胖子網(wǎng)絡(luò)科技有限公司
 *      博客專家地址:blog.csdn.net/qq21497936/article/details/102478062
 *      聯(lián)系方式:QQ(21497936) 微信(yangsir198808)
 * 版本信息
 *       日期             版本         描述
 *       ...             ...          ...
 *   2021年04月02日     v2.0.0     3D點(diǎn)云導(dǎo)入,XYZ周固定旋轉(zhuǎn),復(fù)位,清空
                                  導(dǎo)入文件格式支持導(dǎo)入bmp,定制bmp+z,cvs文件
\************************************************************/

#include 
#include "OsgViewerWidget.h"
#include "MyManipulator.h"

class AnimationPathCameraMainpulator;

namespace Ui {
class OsgWidget;
}

class OsgWidget : public QWidget
{
    Q_OBJECT

public:
    explicit OsgWidget(QWidget *parent = 0);
    ~OsgWidget();

public:
    bool getFixXAxis() const;
    void setFixXAxis(bool fixXAxis);

    bool getFixYAxis() const;
    void setFixYAxis(bool fixYAxis);

    bool getFixZAxis() const;
    void setFixZAxis(bool fixZAxis);

public:
    bool loadFile(QString imageFile, int minZ, int maxZ);
    bool loadFile(QString imageFile, float z);
    bool loadFile(QString imageFile, QString cloudZFile);
    bool loadFile(QString cvsFile, QColor color);
    void clear();
    void resetCoordinate();

protected:
    void initOsg();                 // osg初始化
    void loadNode(osg::ref_ptr pNode);
                                    // 加載場(chǎng)景根節(jié)點(diǎn)
protected:
    osg::ref_ptr create3DPointCloud();   // 創(chuàng)建總場(chǎng)景
    osg::ref_ptr createAxisAndGrid();    // 創(chuàng)建坐標(biāo)軸和線格
    osg::ref_ptr createTickLabel();      // 創(chuàng)建坐標(biāo)軸的tickLabel和單位
    osg::ref_ptr createCloud(std::vector &vectorVec3Vectex,
                                        std::vector &vectorVec4VectexColor);
                                                    // 創(chuàng)建點(diǎn)云

protected:
    void resizeEvent(QResizeEvent *event);
    void keyPressEvent(QKeyEvent* event);
    void keyReleaseEvent(QKeyEvent* event);
    void mousePressEvent(QMouseEvent* event);
    void mouseReleaseEvent(QMouseEvent* event);
    void mouseDoubleClickEvent(QMouseEvent* event);
    void mouseMoveEvent(QMouseEvent* event);
    void wheelEvent(QWheelEvent* event);

private:
    Ui::OsgWidget *ui;

private:
    OsgViewerWidget *_pViewer;                  // osg場(chǎng)景嵌入Qt核心類
    osg::ref_ptr _pRoot;  // osg場(chǎng)景根節(jié)點(diǎn)

private:
    float _xDistance;                           // x軸單個(gè)tick間距
    int _xTickNumber;                           // x軸tick數(shù)(例如:5的時(shí)候,是6個(gè),0~5)

    float _yDistance;                           // y軸單個(gè)tick間距
    int _yTickNumber;                           // y軸tick數(shù)(例如:5的時(shí)候,是6個(gè),0~5)

    float _zDistance;                           // z軸單個(gè)tick間距
    int _zTickNumber;                           // z軸tick數(shù)(例如:5的時(shí)候,是6個(gè),0~5)

    QString _zUnit;                             // z軸單位
    float _zTickLabelOffset;                    // z軸坐標(biāo)偏移
    QString _yUnit;                             // y軸單位
    float _zTickUnitLabelOffset;                // z軸坐標(biāo)偏移

    QColor _gridColor;                          // 軸顏色
    QColor _labelColor;                         // 軸tickLabel的顏色
    osg::ref_ptr _pNode;             // 模型

    osg::ref_ptr _pManipulator;  // 自定義漫游器

    osg::Vec3d _eyeVect3D;                      // 原始坐標(biāo),用于復(fù)位原始視角
    osg::Vec3d _centerVect3D;                   // 原始坐標(biāo),用于復(fù)位原始視角
    osg::Vec3d _upVect3D;                       // 原始坐標(biāo),用于復(fù)位原始視角
};

#endif // OSGWIDGET_H


看完上述內(nèi)容,你們掌握Qt+OSG三維點(diǎn)云引擎的示例分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文題目:Qt+OSG三維點(diǎn)云引擎的示例分析
標(biāo)題路徑:http://weahome.cn/article/ggpgds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部