Qt 3D: 基本図形 C++ サンプル
Qt 3Dが提供する4つの基本図形を示し、それぞれのメッシュを設定します。
Basic Shapesは、Qt 3Dが提供する4つの基本的な形状、トーラス、円柱、立方体、球を示します。この例では、Qt 3D シーンをウィジェットに埋め込み、他のウィジェットと接続する方法も示しています。
例の実行
Qt Creator からサンプルを実行するには、Welcome モードを開き、Examples からサンプルを選択します。詳細は、Building and Running an Example を参照してください。
トーラスメッシュのセットアップ
例として、トーラスメッシュのセットアップ方法を説明します。まず、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); }
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。