翻譯|使用教程|編輯:鮑佳佳|2021-06-17 10:17:58.437|閱讀 199 次
概述:本文主要顯示 Qt 3D 提供的四種基本形狀,并為每個(gè)形狀設(shè)置網(wǎng)格。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt 3D:基本形狀 C++ 示例
本文主要顯示 Qt 3D 提供的四種基本形狀,并為每個(gè)形狀設(shè)置網(wǎng)格。
Qt是一個(gè)跨平臺(tái)框架,通常用作圖形工具包,它不僅創(chuàng)建CLI應(yīng)用程序中非常有用。而且它也可以在三種主要的臺(tái)式機(jī)操作系統(tǒng)以及移動(dòng)操作系統(tǒng)(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式設(shè)備,Android(Necessitas)和iOS的端口上運(yùn)行?,F(xiàn)在我們?yōu)槟闾峁┝嗣赓M(fèi)的試用版。
Qt組件推薦:
Basic Shapes顯示了 Qt 3D 提供的四種基本形狀:圓環(huán)、圓柱、立方體和球體。該示例還展示了如何將 Qt 3D 場(chǎng)景嵌入到小部件中并與其他小部件連接。
要從Qt Creator運(yùn)行示例,請(qǐng)打開歡迎模式并從示例中選擇示例。有關(guān)更多信息,請(qǐng)?jiān)L問構(gòu)建和運(yùn)行示例。
例如,我們將介紹如何設(shè)置環(huán)面網(wǎng)格。首先,我們實(shí)例化QTorusMesh,然后我們?cè)O(shè)置網(wǎng)格特定參數(shù),對(duì)于圓環(huán)來說,這些參數(shù)是半徑、小半徑以及環(huán)和切片的數(shù)量。
m_torus = new Qt3DExtras::QTorusMesh(); m_torus->setRadius(1.0f); m_torus->setMinorRadius(0.4f); m_torus->setRings(100); m_torus->setSlices(20);
圓環(huán)的大小和位置可以通過變換組件進(jìn)行調(diào)整。我們創(chuàng)建縮放、平移和旋轉(zhuǎn)組件并將它們添加到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));
為了改變網(wǎng)格的漫反射顏色,我們創(chuàng)建一個(gè)QPhongMaterial并設(shè)置它的漫反射顏色。
Qt3DExtras::QPhongMaterial *torusMaterial = new Qt3DExtras::QPhongMaterial(); torusMaterial->setDiffuse(QColor(QRgb(0xbeb32b)));
最后一步是將圓環(huán)添加到實(shí)體樹中,我們通過創(chuàng)建QEntity具有父實(shí)體的實(shí)體并將之前創(chuàng)建的網(wǎng)格、材質(zhì)和變換組件添加到其中來實(shí)現(xiàn)。
m_torusEntity = new Qt3DCore::QEntity(m_rootEntity); m_torusEntity->addComponent(m_torus); m_torusEntity->addComponent(torusMaterial); m_torusEntity->addComponent(torusTransform);
我們可以通過定義實(shí)體是否有父實(shí)體來控制實(shí)體的可見性。也就是說,它是否是實(shí)體樹的一部分。
void SceneModifier::enableTorus(bool enabled) { m_torusEntity->setEnabled(enabled); }
====================================================
想要了解或購(gòu)買Qt正版授權(quán)的朋友,歡迎
Qt技術(shù)交流群現(xiàn)已開通,QQ搜索群號(hào)“765444821”或者掃描下方二維碼即可加入
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: