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的情况:

 

程序运行截图如下:

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

 

 

 

 
源码如下:main.cpp

 1 #include 2 #include 3 #include 4 #include 5 #include 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 }

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部