半岛权威十大直营(官方)网站

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

翻译|使用教程|编辑:鲍佳佳|2021-02-07 10:19:01.057|阅读 381 次

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

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

Qt自带集成开发环境(IDE),名为Qt Creator。它可以在Linux、OS X和Windows上运行,并提供智能代码完成、语法高亮、集成帮助系统、调试器和剖析器集成,还集成了所有主要的版本控制系统(如git、Bazaar)。除了Qt Creator外,Windows上的开发人员还可以使用Qt的Visual Studio插件。也可以使用其他的IDE(如KDE上的KDevelop)。但当然绝不是必须使用任何IDE。

点击下载Qt6最新试用版

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提供的四种基本形状:圆环,圆柱体,立方体和球体。该示例还显示了如何将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);
}


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP