Qt6实例教程:Qt 3D提供的四种基本形状

翻译|使用教程|编辑:鲍佳佳|2021-06-17 10:17:58.437|阅读 45 次

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

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

相关链接:

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

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

Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。

下载Qt6最新试用版

Qt组件推荐:

  • QtitanRibbon| 下载试用: 遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart | 下载试用 :是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。并且支持所有主要的桌面

Basic Shapes显示了 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正版授权的朋友,欢迎咨询慧都官方客服

Qt技术交流群现已开通,QQ搜索群号“765444821”或者扫描下方二维码即可加入


标签:

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

文章转载自:Qt

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat