zoukankan      html  css  js  c++  java
  • Qt 加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类。

    他是专门加载高度图。

    高度图是没有X,Z轴的概念,所以在编程的时候要指定minXValue, maxXValue, minZValue, maxZValue属性。x值主要是图的水平方向,y值为垂直方向。

    QSurface3DSeries中setDrawMode():设置QSurface3DSeries画图的模式,有以下几种:

    QSurface3DSeries::DrawWireframe:只画网格

    QSurface3DSeries::DrawSurface:只画表面

    QSurface3DSeries::DrawSurfaceAndWireframe:画网格及表面

    QSurface3DSeries中flatShadingEnabled():设置表面底纹光滑。默认其他下是true。当为false时,表面将会用圆来替代。不是平滑的。什么意思,这里用图来演示!

    这个是为true的情况:

    这个是为false的情况:

    程序运行截图如下:


    源码如下:

    main.cpp

     1 #include <QApplication>
     2 #include <QtDataVisualization>
     3 #include <QHeightMapSurfaceDataProxy>
     4 #include <QSurface3DSeries>
     5 #include <QImage>
     6  
     7 using namespace QtDataVisualization;
     8  
     9 int main(int argc, char *argv[])
    10 {
    11     QApplication a(argc, argv);
    12  
    13     Q3DSurface surface;
    14     surface.setFlags(surface.flags() ^ Qt::FramelessWindowHint);
    15     surface.resize(800, 600);
    16     surface.show();
    17  
    18     //添加数据
    19     QImage image(":/img/Heightmap4.png");
    20     QHeightMapSurfaceDataProxy *proxy = new QHeightMapSurfaceDataProxy(image);
    21     proxy->setValueRanges(0.0f, 500.0f, 0.0f, 500.0f);
    22     QSurface3DSeries *series = new QSurface3DSeries(proxy);
    23     series->setDrawMode(QSurface3DSeries::DrawSurface);
    24     series->setFlatShadingEnabled(false);
    25     surface.addSeries(series);
    26  
    27     return a.exec();
    28 }
  • 相关阅读:
    hdu 1269 迷宫城堡(强联通分量,基础)
    hdu 2102 A计划(BFS,基础)
    python 变量命名规范
    rpm常用选项
    memcached
    session共享
    Nginx高级使用
    nginx 反向代理
    Nginx基本使用
    github 建立博客
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14267294.html
Copyright © 2011-2022 走看看