Surface3DNode QML Type
3D曲面グラフノードの使用方法を説明します。詳細...
Import Statement: | import QtGraphs |
Inherits: |
- 継承メンバを含む全メンバ一覧
- Surface3DNode はQt Graphs QML Types for 3D に含まれます。
プロパティ
- aspectRatio : real
- axisX : Value3DAxis
- axisY : Value3DAxis
- axisZ : Value3DAxis
- customItemList : list<Custom3DItem>
- flipHorizontalGrid : bool
- gridLineType : Graphs3D.GridLineType
- horizontalAspectRatio : real
- labelMargin : real
- locale : locale
- margin : real
- optimizationHint : Graphs3D.OptimizationHint
- polar : bool
- queriedGraphPosition : vector3d
- radialLabelOffset : real
- selectedElement : Graphs3D.ElementType
- selectedSeries : Surface3DSeries
- selectionMode : Graphs3D.SelectionMode
- seriesList : list<Surface3DSeries>
- theme : GraphsTheme
信号
- axisXChanged(ValueAxis3D axis)
- axisYChanged(ValueAxis3D axis)
- axisZChanged(ValueAxis3D axis)
- flipHorizontalGridChanged(bool flip)
- selectedSeriesChanged(Surface3DSeries series)
方法
- qsizetype addCustomItem(Custom3DItem item)
- void addSeries(Surface3DSeries series)
- void clearSelection()
- void doPicking(QPoint point)
- void doRayPicking(QVector3D origin, QVector3D direction)
- bool hasSeries(Abstract3DSeries series)
- void releaseCustomItem(Custom3DItem item)
- void removeCustomItem(Custom3DItem item)
- void removeCustomItemAt(vector3d position)
- void removeCustomItems()
- void removeSeries(Surface3DSeries series)
- Abstract3DAxis selectedAxis()
- Custom3DItem selectedCustomItem()
- qsizetype selectedCustomItemIndex()
- int selectedLabelIndex()
詳細説明
この型を使用すると、Qt Quick を使ってサーフェスグラフ・ノードを3Dでレンダリングすることができる。
この型を使用するには、Qt Graphs モジュールをインポートする必要があります:
import QtGraphs
その後、qmlファイルでSurface3DNodeを使用することができます:
import QtQuick import QtGraphs View3D { width: 640 height: 480 Surface3DNode { width: parent.width height: parent.height Surface3DSeries { itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel" ItemModelSurfaceDataProxy { itemModel: dataModel // Mapping model roles to surface series rows, columns, and values. rowRole: "longitude" columnRole: "latitude" yPosRole: "pop_density" } } onTapped: { // Disable the default input handler unsetDefaultTapHandler() // Implement own custom event handler console.log("Custom tap event handler") } } ListModel { id: dataModel ListElement{ longitude: "20"; latitude: "10"; pop_density: "4.75"; } ListElement{ longitude: "21"; latitude: "10"; pop_density: "3.00"; } ListElement{ longitude: "22"; latitude: "10"; pop_density: "1.24"; } ListElement{ longitude: "23"; latitude: "10"; pop_density: "2.53"; } ListElement{ longitude: "20"; latitude: "11"; pop_density: "2.55"; } ListElement{ longitude: "21"; latitude: "11"; pop_density: "2.03"; } ListElement{ longitude: "22"; latitude: "11"; pop_density: "3.46"; } ListElement{ longitude: "23"; latitude: "11"; pop_density: "5.12"; } ListElement{ longitude: "20"; latitude: "12"; pop_density: "1.37"; } ListElement{ longitude: "21"; latitude: "12"; pop_density: "2.98"; } ListElement{ longitude: "22"; latitude: "12"; pop_density: "3.33"; } ListElement{ longitude: "23"; latitude: "12"; pop_density: "3.23"; } ListElement{ longitude: "20"; latitude: "13"; pop_density: "4.34"; } ListElement{ longitude: "21"; latitude: "13"; pop_density: "3.54"; } ListElement{ longitude: "22"; latitude: "13"; pop_density: "1.65"; } ListElement{ longitude: "23"; latitude: "13"; pop_density: "2.67"; } } }
Surface3DSeries,ItemModelSurfaceDataProxy,Bars3DNode,Scatter3DNode,Qt Graphs C++ Classes for 3Dも参照してください 。
プロパティの説明
aspectRatio : real |
axisX : Value3DAxis |
アクティブな x 軸。
軸が与えられない場合、ラベルと自動調整範囲を持たない一時的なデフォルト軸が作成されます。この一時的な軸は、別の軸が明示的に同じ方向に設定されると破棄されます。
axisY : Value3DAxis |
アクティブなY軸。
軸が与えられない場合、ラベルと自動調整範囲を持たない一時的なデフォルト軸が作成されます。この一時的な軸は、他の軸が同じ方向に明示的に設定されると破棄されます。
axisZ : Value3DAxis |
アクティブなZ軸。
軸が与え ら れない と 、 ラ ベルな し と 自動調整範囲を持つ一時的なデフ ォル ト 軸が作成 さ れます。こ の一時軸は、 別の軸が明示的に同 じ 方向に設定 さ れる と 破棄 さ れる。
customItemList : list<Custom3DItem> |
グラフに追加されるCustom3DItem アイテムのリスト。グラフは追加された項目の所有権を持つ。
flipHorizontalGrid : bool |
使用例によっては、水平軸グリッドはほとんどサーフェスで覆われているので、水平軸グリッドをグラフの下部ではなく上部に表示した方が便利な場合がある。典型的な使用例としては、トップダウン視点のオルソグラフィック投影を使用して2Dスペクトログラムを表示する場合である。
false
の場合、横軸グリッドとラベルはグラフの水平背景に描画される。true
の場合、横軸グリッドとラベルは、グラフの水平背景とは反対側に描画される。デフォルトはfalse
。
gridLineType : Graphs3D.GridLineType |
グリッド線のタイプがGraphs3D.GridLineType.Shader
かGraphs3D.GridLineType.Geometry
かを定義します。
この値はすべてのグリッド線に影響します。
Graphs3D.GridLineTypeも参照してください 。
horizontalAspectRatio : real |
グ ラ フ の x 軸 と z 軸の比を指定 し ます。値0.0
は、 軸範囲に従っ た自動ス ケー リ ン グ を示す。デフォルトは0.0
。
注 : barThickness とbarSpacing プ ロパテ ィ を通 じ て水平面上の拡縮を扱 うBars3DNode には影響 し ません。極座標グラフもこのプロパティを無視します。
aspectRatio,polar,Bars3DNode::barThickness, およびBars3DNode::barSpacingも参照してください 。
labelMargin : real |
このプロパティは、軸ラベルの配置のマージンを指定します。
負の値はラベルをプロット領域内に配置し、正の値はラベルをプロット領域外に配置する。値が負の場合、ラベルの自動回転は無効になる。デフォルトは0.1
locale : locale |
各種数値ラベルの書式設定に用いるロケールを設定する。デ フ ォ ル ト は"C"
ロ ケール。
margin : real |
margin(余白) グラフ描画可能領域の端とグラフ背景の端の間に残された余白の絶対値。
marginの値が負の場合、余白は自動的に決定され、シリーズ内のアイテムのサイズやグラフの種類によって変化する。グラフのアスペクト比がデフォルト値から変更されていない場合、値はY軸範囲の分数として解釈される。デフォルトは-1.0
。
注: 散布図グラフの余白を自動的に決定される余白よりも小さく設定すると、グラフの端の散布図項目がグラフの背景と重なることがあります。
注 :散布図およびサーフェス グラフでは、軸ラベルのサイズに比べてマージンが小さい場合、軸のエッジ ラベルの位置は、隣接する軸のエッジ ラベルと重ならないように調整されます。
optimizationHint : Graphs3D.OptimizationHint |
レンダリングの最適化にデフォルトモードとレガシーモードのどちらを使用するかを指定します。
デフォルトモードはインスタンス化されたレンダリングを使用し、ほとんどのシステムで最高レベルのパフォーマンスで全機能セットを提供します。静的モードはグラフ描画を最適化し、変化のない大規模なデータセットに最適です。動的なデータの変化やアイテムの回転があると遅くなります。選択は最適化されないため、大規模なデータセットで静的モードを使用することはお勧めできません。レガシーモードは、インスタンス化せずに、グラフ内のすべての項目を個別にレンダリングします。これは、デフォルト・モードが機能しない場合にのみ使用されるべきで、ターゲット・システムがインスタンス化をサポートしていない場合と同じです。デフォルトはDefault 。
注意: 環境によっては、静的最適化を使用した大きなグラフが描画されないことがあります。これは、すべてのアイテムが1回の描画呼び出しで描画されるためで、グラフィックドライバによって、呼び出しごとにサポートされる最大頂点数が異なるからです。これは主に32ビットおよびOpenGL ES2プラットフォームでの問題です。この問題を回避するには、頂点数の少ないアイテムメッシュを選択するか、ポイントメッシュを使用します。
Abstract3DSeries::mesh およびGraphs3D.OptimizationHintも参照して ください。
polar : bool |
queriedGraphPosition : vector3d |
こ の読み出 し 専用のプ ロパテ ィ には、Scene3D::graphPositionQuery を用いて取得 さ れた各軸に沿 う 最新のグ ラ フ位置値が格納 さ れてい ます。値は[-1, 1]
の範囲に正規化されます。クエリされた位置がグラフ境界の外側であった場合、値は実際の位置を反映せず、代わりに範囲[-1, 1]
の外側の未定義の位置となります。この値は、問い合わせが行われるまで未定義となる。
特定の画面位置に一致する唯一の正しい3D座標は存在しないため、一貫性を保つために、クエリは常にグラフを囲む不可視のボックスの内側に対して行われます。
注: 棒グラフでは、グラフのフロアレベルでしかグラフの位置を問い合わせることができないため、棒グラフではy値は常に0であり、有効な問い合わせはグラフのフロアを含む画面位置でのみ行うことができます。
Scene3D::graphPositionQueryも参照のこと 。
radialLabelOffset : real |
このプロパティは、半径極軸の軸ラベルの正規化された水平オフセットを指定します。値0.0
は、ラベルが0角度の角度軸グリッド線の隣に描画されるべきであることを示します。値1.0
は、ラベルがグラフ背景の端の通常の場所に描画されることを示す。このプロパティは、polar プロパティ値がfalse
の場合は無視されます。デフォルトは1.0
。
polarも参照してください 。
selectedElement : Graphs3D.ElementType |
グラフ内で選択されている要素。
こ のプ ロパテ ィ を用いて、 選択 さ れてい る 要素の種類を取得す る こ と がで き ます。このタイプは、グラフ内で新しい選択が行われ、selectedElementChanged
シグナルが発せられるまで有効です。
このシグナルは、例えば、カスタマイズされた入力処理を実装するために使用することができます。
selectedLabelIndex(),selectedAxis(),selectedCustomItemIndex(),selectedCustomItem(),Bars3DNode::selectedSeries,Scatter3DNode::selectedSeries,Scene3D::selectionQueryPosition,Graphs3D.ElementTypeも参照のこと 。
selectedSeries : Surface3DSeries |
選択された系列または NULL。selectionMode にMultiSeries
フラグが設定されている場合、このプロパティは選択されたポイントを所有する系列を保持する。
selectionMode : Graphs3D.SelectionMode |
グラフのアクティブな選択モード。graphs3d.selectionflag enum 値の1つ。
seriesList : list<Surface3DSeries> |
このプロパティはグラフの系列を保持する。デフォルトでは、このプロパティには空のリストが含まれる。系列を設定するには、addSeries ()関数を使用するか、グラフの子として定義します。
theme : GraphsTheme |
グラフのアクティブテーマ。
GraphsThemeも参照 。
シグナル・ドキュメント
axisXChanged(ValueAxis3D axis) |
このシグナルは、axisX がaxis に変更されたときに発行される。
注: 対応するハンドラはonAxisXChanged
です。
axisYChanged(ValueAxis3D axis) |
このシグナルはaxisY がaxis に変更されたときに発行されます。
注 : 対応するハンドラはonAxisYChanged
です。
axisZChanged(ValueAxis3D axis) |
このシグナルはaxisZ がaxis に変更されたときに発せられる。
注: 対応するハンドラはonAxisZChanged
です。
flipHorizontalGridChanged(bool flip) |
このシグナルはflipHorizontalGrid がflip に変更されたときに発せられる。
注: 対応するハンドラはonFlipHorizontalGridChanged
です。
selectedSeriesChanged(Surface3DSeries series) |
このシグナルはselectedSeries がseries に変更されたときに発せられる。
注意 : 対応するハンドラはonSelectedSeriesChanged
です。
メソッドの説明
qsizetype addCustomItem(Custom3DItem item) |
Custom3DItem item をグラフに追加します。グラフは追加されたアイテムの所有権を持つ。
add が成功した場合は追加されたアイテムのインデックスを返し、null アイテムを追加しようとした場合は -1、既に追加されたアイテムを追加しようとした場合はそのアイテムのインデックスを返します。
removeCustomItems(),removeCustomItem(),removeCustomItemAt()も参照 。
void addSeries(Surface3DSeries series) |
グラフにseries を追加します。
GraphsNode::hasSeries() も参照して ください。
void clearSelection() |
添付されているすべての系列から選択をクリアします。
void doPicking(QPoint point) |
point 、グラフの要素にビュー座標を使用してピッキングを実行し、最初にヒットした項目を選択します。デフォルトの入力処理は、onTapped イベントを受信したときにこれを実行します。
selectedElementも参照してください 。
void doRayPicking(QVector3D origin, QVector3D direction) |
origin 、direction からグラフの要素に対してピッキングを実行し、最初にヒットしたアイテムを選択します。
selectedElement も参照して ください。
bool hasSeries(Abstract3DSeries series) |
series がすでにグラフに追加されているかどうかを返します。
void releaseCustomItem(Custom3DItem item) |
item の所有権を取り戻し、item をグラフから削除します。
注意: 同じアイテムが再びグラフに追加された場合、テクスチャファイルを再設定する必要があります。
Custom3DItem::textureFileも参照してください 。
void removeCustomItem(Custom3DItemアイテム) |
カスタムitem を削除します。それに割り当てられているリソースを削除します。
void removeCustomItemAt(vector3d position) |
position のカスタム項目をすべて削除します。それらに割り当てられているリソースを削除します。
void removeCustomItems() |
すべてのカスタム項目を削除します。それらに割り当てられているリソースを削除します。
void removeSeries(Surface3DSeries series) |
series をグラフから削除します。
GraphsNode::hasSeries()も参照してください 。
Abstract3DAxis selectedAxis() |
任意のラベル・タイプでselectedElementChanged
シグナルを受信した後、選択された軸を取得するために使用できる。選択は、次のselectedElementChanged
シグナルまで有効です。
選択された軸、または NULL を返します。
selectedElementも参照してください 。
Custom3DItem selectedCustomItem() |
ElementType.CustomItem タイプでselectedElementChanged
シグナルを受信した後、選択されたカスタム項目を取得するために使用できます。項目の所有権はグラフに残ります。選択は、次のselectedElementChanged
シグナルまで有効です。
選択されたカスタム項目、または null を返します。
selectedElementも参照してください 。
qsizetype selectedCustomItemIndex() |
ElementType.CustomItem 型のselectedElementChanged
シグナルを受信した後、選択されたカスタム項目のインデックスを照会するために使用できます。選択は次のselectedElementChanged
シグナルまで有効である。
選択されたカスタム項目のインデックス、または -1 を返します。
selectedElementも参照 。
int selectedLabelIndex() |
任意のラベル・タイプでselectedElementChanged
シグナルを受信した後、選択されたラベルのインデックスを問い合わせるために使用できる。選択は次のselectedElementChanged
シグナルが来るまで有効である。
選択されたラベルのインデックスか -1 を返します。
selectedElement も参照 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.