You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Qt Data Visualization在3D曲面上叠加绘制3D散点?

在Qt Data Visualization中叠加3D曲面图与散点图

完全可以实现3D曲面与散点的叠加显示,核心是利用Qt Data Visualization的视图组件支持多系列加载的特性,具体实现方式如下:

  • 以Q3DSurface作为主3D视图容器,它允许同时添加QSurface3DSeries(曲面数据)和QScatter3DSeries(散点数据)两类数据系列。
  • 分别为曲面和散点配置对应的数据代理,加载各自的三维数据。
  • 将两个系列都添加到同一个Q3DSurface实例中,即可实现同一场景下的叠加展示。

代码示例

// 初始化曲面视图
Q3DSurface *surfaceGraph = new Q3DSurface();
QWidget *container = QWidget::createWindowContainer(surfaceGraph);

// 配置曲面数据系列
QSurface3DSeries *surfaceSeries = new QSurface3DSeries();
// 此处替换为实际曲面数据加载逻辑,例如通过QSurfaceDataProxy导入数据
surfaceGraph->addSeries(surfaceSeries);

// 配置散点数据系列
QScatter3DSeries *scatterSeries = new QScatter3DSeries();
QScatterDataArray scatterData;
// 添加示例散点坐标(需与曲面坐标系统匹配)
scatterData << QVector3D(2.0f, 15.0f, 3.0f)
            << QVector3D(5.0f, 22.0f, 6.0f)
            << QVector3D(8.0f, 18.0f, 9.0f);
scatterSeries->dataProxy()->resetArray(&scatterData);

// 自定义散点样式(可选)
scatterSeries->setBaseColor(Qt::darkRed);
scatterSeries->setItemSize(0.3f);

// 将散点系列添加到曲面视图
surfaceGraph->addSeries(scatterSeries);

注意事项

  • 确保散点的三维坐标与曲面的坐标系统完全一致,避免出现位置错位。
  • 可通过setOpacity()调整系列的透明度,让叠加的图形层次更清晰。
  • 若需调整场景视角、光照等参数,可通过surfaceGraph->scene()获取Q3DScene实例进行精细化控制。

内容的提问来源于stack exchange,提问作者HAO LEE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:15:35