Qt 3D:基本形状C ++示例

显示Qt 3D提供的四个基本形状,并为每个形状设置一个网格。

Qt 3D:基本形状C ++示例

Qt相关组件:

  • QtitanRibbon| 下载试用: 遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart | 下载试用 :是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。并且支持所有主要的桌面操作系统。
  • QtitanDataGrid | 下载试用 :这个Qt数据网格组件使用纯C++创建,运行速度极快,处理大数据和超大数据集的效果突出。QtitanDataGrid完全集成了QtDesigner,因而极易适应其他相似的开发环境,保证100%兼容Qt GUI。

显示Qt 3D提供的四个基本形状,并为每个形状设置一个网格。

Qt 3D:基本形状C ++示例

基本形状显示了Qt 3D提供的四种基本形状:圆环,圆柱体,立方体和球体。该示例还显示了如何将Qt 3D场景嵌入到小部件中以及如何与其他小部件连接。

运行示例

要从Qt Creator运行示例,请打开“欢迎”模式,然后从“示例”中选择示例

设置环面网格

例如,我们介绍了如何设置环面网格。首先,我们实例化QTorusMesh,然后设置特定于网格的参数,对于圆环来说,它们是半径,次半径以及环和切片的数量。

m_torus = new Qt3DExtras::QTorusMesh();m_torus->setRadius(1.0f);m_torus->setMinorRadius(0.4f);m_torus->setRings(100);m_torus->setSlices(20);

圆环的大小和位置可以使用变换组件进行调整。我们创建比例,平移和旋转组件并将其添加到QTransform组件中。

Qt3DCore::QTransform *torusTransform = new Qt3DCore::QTransform();torusTransform->setScale(2.0f);torusTransform->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 1.0f, 0.0f), 25.0f));torusTransform->setTranslation(QVector3D(5.0f, 4.0f, 0.0f));

要更改网格的漫反射颜色,我们创建一个QPhongMaterial并设置其漫反射颜色。

Qt3DExtras::QPhongMaterial *torusMaterial = new Qt3DExtras::QPhongMaterial();torusMaterial->setDiffuse(QColor(QRgb(0xbeb32b)));

最后一步是将圆环添加到实体树中,然后通过QEntity使用父实体创建一个,然后添加先前创建的网格,材质并将组件转换到其中来完成。

m_torusEntity = new Qt3DCore::QEntity(m_rootEntity);m_torusEntity->addComponent(m_torus);m_torusEntity->addComponent(torusMaterial);m_torusEntity->addComponent(torusTransform);

我们可以通过定义实体是否具有父实体来控制实体的可见性。也就是说,它是否是实体树的一部分。

void SceneModifier::enableTorus(bool enabled){    m_torusEntity->setEnabled(enabled);}

Qt 3D:基本形状C ++示例

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月4日
下一篇 2021年1月4日

相关推荐

发表回复

登录后才能评论