Surface3DNode QML Type
Beschreibt die Verwendung des 3D-Oberflächengraphenknotens. Mehr...
Import Statement: | import QtGraphs |
Inherits: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Surface3DNode ist Teil von Qt Graphs QML Types for 3D.
Eigenschaften
- 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
Signale
- axisXChanged(ValueAxis3D axis)
- axisYChanged(ValueAxis3D axis)
- axisZChanged(ValueAxis3D axis)
- flipHorizontalGridChanged(bool flip)
- selectedSeriesChanged(Surface3DSeries series)
Methoden
- 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()
Detaillierte Beschreibung
Dieser Typ ermöglicht es Entwicklern, einen Oberflächendiagrammknoten in 3D mit Qt Quick zu rendern.
Um diesen Typ zu verwenden, müssen Sie das Modul Qt Graphs importieren:
import QtGraphs
Danach können Sie Surface3DNode in Ihren qml-Dateien verwenden:
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"; } } }
Siehe auch Surface3DSeries, ItemModelSurfaceDataProxy, Bars3DNode, Scatter3DNode, und Qt Graphs C++ Klassen für 3D.
Eigenschaft Dokumentation
aspectRatio : real |
Das Verhältnis der Grafikskalierung zwischen der längsten Achse auf der horizontalen Ebene und der y-Achse. Der Standardwert ist 2.0
.
Hinweis: Hat keine Auswirkung auf Bars3D.
Siehe auch horizontalAspectRatio.
axisX : Value3DAxis |
Die aktive x-Achse.
Wenn keine Achse angegeben wird, wird eine temporäre Standardachse ohne Beschriftung und mit einem automatisch angepassten Bereich erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
axisY : Value3DAxis |
Die aktive y-Achse.
Wenn keine Achse angegeben wird, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
axisZ : Value3DAxis |
Die aktive z-Achse.
Wenn keine Achse angegeben wird, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
customItemList : list<Custom3DItem> |
Die Liste der Custom3DItem Elemente, die dem Diagramm hinzugefügt werden. Das Diagramm übernimmt das Eigentum an den hinzugefügten Elementen.
flipHorizontalGrid : bool |
In einigen Anwendungsfällen wird das horizontale Achsenraster größtenteils von der Oberfläche verdeckt, so dass es sinnvoller sein kann, das horizontale Achsenraster am oberen Rand des Diagramms statt am unteren Rand anzuzeigen. Ein typischer Anwendungsfall hierfür ist die Darstellung von 2D-Spektrogrammen unter Verwendung der orthoGraphic-Projektion mit einem Top-Down-Blickwinkel.
Bei false
werden das horizontale Achsenraster und die Beschriftungen auf dem horizontalen Hintergrund des Diagramms gezeichnet. Bei true
werden das horizontale Achsenraster und die Beschriftungen auf der dem horizontalen Hintergrund gegenüberliegenden Seite des Diagramms gezeichnet. Die Standardeinstellung ist false
.
gridLineType : Graphs3D.GridLineType |
Legt fest, ob der Typ der Gitterlinien Graphs3D.GridLineType.Shader
oder Graphs3D.GridLineType.Geometry
ist.
Dieser Wert wirkt sich auf alle Gitterlinien aus.
Siehe auch Graphs3D.GridLineType.
horizontalAspectRatio : real |
Das Verhältnis der Skalierung des Diagramms zwischen der x-Achse und der z-Achse. Der Wert 0.0
bedeutet eine automatische Skalierung entsprechend den Achsenbereichen. Der Standardwert ist 0.0
.
Hinweis: Hat keine Auswirkung auf Bars3DNode, das die Skalierung auf der horizontalen Ebene über die Eigenschaften barThickness und barSpacing handhabt. Polardiagramme ignorieren diese Eigenschaft ebenfalls.
Siehe auch aspectRatio, polar, Bars3DNode::barThickness, und Bars3DNode::barSpacing.
labelMargin : real |
Diese Eigenschaft legt den Rand für die Platzierung der Achsenbeschriftungen fest.
Negative Werte platzieren die Beschriftungen innerhalb des Plot-Bereichs, positive Werte außerhalb des Plot-Bereichs. Die automatische Drehung der Beschriftungen ist deaktiviert, wenn der Wert negativ ist. Standardwert ist 0.1
Siehe auch QAbstract3DAxis::labelAutoAngle.
locale : locale |
Legt das Gebietsschema fest, das für die Formatierung verschiedener numerischer Beschriftungen verwendet wird. Standardmäßig wird das Gebietsschema "C"
verwendet.
Siehe auch Value3DAxis::labelFormat.
margin : real |
Der absolute Wert, der für den Abstand zwischen dem Rand des plottbaren Diagrammbereichs und dem Rand des Diagrammhintergrunds verwendet wird.
Wenn der Wert für den Rand negativ ist, werden die Ränder automatisch bestimmt und können je nach Größe der Elemente in der Reihe und dem Typ des Diagramms variieren. Der Wert wird als Bruchteil des y-Achsenbereichs interpretiert, wenn die Seitenverhältnisse des Diagramms gegenüber den Standardwerten nicht geändert wurden. Der Standardwert ist -1.0
.
Hinweis: Wird für ein Streudiagramm ein kleinerer Rand als der automatisch ermittelte Rand eingestellt, kann dies dazu führen, dass sich die Streuelemente an den Rändern des Diagramms mit dem Diagrammhintergrund überlappen.
Hinweis: Bei Streu- und Oberflächendiagrammen werden die Positionen der Achsenkantenbeschriftungen angepasst, um eine Überlappung mit den Achsenkantenbeschriftungen der benachbarten Achsen zu vermeiden, wenn der Rand im Vergleich zur Achsenbeschriftungsgröße klein ist.
optimizationHint : Graphs3D.OptimizationHint |
Gibt an, ob der Standard- oder Legacy-Modus für die Rendering-Optimierung verwendet wird.
Der Standardmodus verwendet instanziertes Rendering und bietet auf den meisten Systemen den vollen Funktionsumfang bei bester Leistung. Der statische Modus optimiert das Rendering von Diagrammen und ist ideal für große, sich nicht verändernde Datensätze. Bei dynamischen Datenänderungen und Elementdrehungen ist er langsamer. Die Auswahl wird nicht optimiert, daher ist die Verwendung des statischen Modus bei großen Datensätzen nicht ratsam. Der Legacy-Modus rendert alle Elemente im Diagramm einzeln, ohne Instanzierung. Er sollte nur verwendet werden, wenn der Standardmodus nicht funktioniert, d. h. wenn das Zielsystem keine Instanzierung unterstützt. Die Voreinstellung ist Default.
Hinweis: In manchen Umgebungen können große Graphen mit statischer Optimierung nicht gerendert werden, da alle Elemente mit einem einzigen Zeichenaufruf gerendert werden und verschiedene Grafiktreiber unterschiedliche maximale Anzahlen von Vertices pro Aufruf unterstützen. Dies ist vor allem ein Problem auf 32bit- und OpenGL ES2-Plattformen. Um dieses Problem zu umgehen, wählen Sie ein Objektmesh mit einer niedrigen Vertexanzahl oder verwenden Sie das Punktmesh.
Siehe auch Abstract3DSeries::mesh und Graphs3D.OptimizationHint.
polar : bool |
Wenn Sie true
verwenden, werden die horizontalen Achsen in polare Achsen umgewandelt. Die x-Achse wird zur Winkelachse und die z-Achse wird zur Radialachse. Der Polarmodus ist für Balkendiagramme nicht verfügbar.
Die Standardeinstellung ist false
.
Siehe auch radialLabelOffset.
queriedGraphPosition : vector3d |
Diese schreibgeschützte Eigenschaft enthält die letzten Positionswerte des Diagramms entlang jeder Achse, die mit Scene3D::graphPositionQuery abgefragt wurden. Die Werte sind auf den Bereich [-1, 1]
normalisiert. Wenn die abgefragte Position außerhalb der Diagrammgrenzen lag, spiegeln die Werte nicht die tatsächliche Position wider, sondern eine undefinierte Position außerhalb des Bereichs [-1, 1]
. Der Wert ist so lange undefiniert, bis eine Abfrage durchgeführt wird.
Es gibt keine einzige korrekte 3D-Koordinate, die einer bestimmten Bildschirmposition entspricht. Um konsistent zu sein, werden die Abfragen daher immer an den Innenseiten eines unsichtbaren Rahmens durchgeführt, der das Diagramm umgibt.
Hinweis: Bei Balkendiagrammen ist die Abfrage der Diagrammposition nur auf der Ebene des Diagrammbodens möglich, so dass der y-Wert bei Balkendiagrammen immer Null ist und gültige Abfragen nur an Bildschirmpositionen vorgenommen werden können, die den Boden des Diagramms enthalten.
Siehe auch Scene3D::graphPositionQuery.
radialLabelOffset : real |
Diese Eigenschaft gibt den normierten horizontalen Versatz für die Achsenbeschriftungen der radialen Polarachse an. Der Wert 0.0
gibt an, dass die Beschriftungen neben der 0-Winkel-Winkelachsen-Gitterlinie gezeichnet werden sollen. Der Wert 1.0
gibt an, dass die Beschriftungen an ihrem üblichen Platz am Rand des Diagrammhintergrunds gezeichnet werden. Diese Eigenschaft wird ignoriert, wenn der Wert der Polareigenschaft false
lautet. Der Standardwert ist 1.0
.
Siehe auch polar.
selectedElement : Graphs3D.ElementType |
Das im Diagramm ausgewählte Element.
Diese Eigenschaft kann zur Abfrage des ausgewählten Elementtyps verwendet werden. Der Typ ist so lange gültig, bis eine neue Auswahl im Graphen getroffen und das Signal selectedElementChanged
ausgegeben wird.
Das Signal kann z. B. zur Implementierung einer benutzerdefinierten Eingabebehandlung verwendet werden, wie das Beispiel Achsenbehandlung zeigt.
Siehe auch selectedLabelIndex(), selectedAxis(), selectedCustomItemIndex(), selectedCustomItem(), Bars3DNode::selectedSeries, Scatter3DNode::selectedSeries, Scene3D::selectionQueryPosition, und Graphs3D.ElementType.
selectedSeries : Surface3DSeries |
Die ausgewählte Reihe oder Null. Wenn bei selectionMode das Kennzeichen MultiSeries
gesetzt ist, enthält diese Eigenschaft die Serie, die den ausgewählten Punkt enthält.
selectionMode : Graphs3D.SelectionMode |
Der aktive Auswahlmodus im Diagramm. Einer der graphs3d.selectionflag enum-Werte.
seriesList : list<Surface3DSeries> |
Diese Eigenschaft enthält die Serie des Diagramms. Standardmäßig enthält diese Eigenschaft eine leere Liste. Um die Serien festzulegen, verwenden Sie entweder die Funktion addSeries() oder definieren Sie sie als Kinder des Diagramms.
theme : GraphsTheme |
Das aktive Thema des Diagramms.
Siehe auch GraphsTheme.
Signal Dokumentation
axisXChanged(ValueAxis3D axis) |
Dieses Signal wird ausgegeben, wenn axisX zu axis wechselt.
Hinweis: Der entsprechende Handler ist onAxisXChanged
.
axisYChanged(ValueAxis3D axis) |
Dieses Signal wird ausgegeben, wenn axisY zu axis wechselt.
Hinweis: Der entsprechende Handler ist onAxisYChanged
.
axisZChanged(ValueAxis3D axis) |
Dieses Signal wird ausgegeben, wenn axisZ zu axis wechselt.
Hinweis: Der entsprechende Handler ist onAxisZChanged
.
flipHorizontalGridChanged(bool flip) |
Dieses Signal wird ausgegeben, wenn flipHorizontalGrid zu flip wechselt.
Hinweis: Der entsprechende Handler ist onFlipHorizontalGridChanged
.
selectedSeriesChanged(Surface3DSeries series) |
Dieses Signal wird ausgegeben, wenn selectedSeries zu series wechselt.
Hinweis: Der entsprechende Handler ist onSelectedSeriesChanged
.
Methode Dokumentation
qsizetype addCustomItem(Custom3DItem item) |
Fügt ein Custom3DItem item zum Graph hinzu. Graph übernimmt das Eigentum an dem hinzugefügten Element.
Gibt den Index des hinzugefügten Elements zurück, wenn add erfolgreich war, -1, wenn versucht wurde, ein Nullelement hinzuzufügen, und den Index des Elements, wenn versucht wurde, ein bereits hinzugefügtes Element hinzuzufügen.
Siehe auch removeCustomItems(), removeCustomItem(), und removeCustomItemAt().
void addSeries(Surface3DSeries series) |
Fügt series zum Diagramm hinzu.
Siehe auch GraphsNode::hasSeries().
void clearSelection() |
Löscht die Auswahl aus allen angehängten Reihen.
void doPicking(QPoint point) |
Führt die Auswahl unter Verwendung der Ansichtskoordinaten von point auf den Elementen des Diagramms durch und wählt das erste getroffene Element aus. Die Standard-Eingabebehandlung führt dies beim Empfang des onTapped-Ereignisses durch.
Siehe auch selectedElement.
void doRayPicking(QVector3D origin, QVector3D direction) |
Führt das Picking ausgehend von origin und direction auf den Elementen des Diagramms durch und wählt das erste getroffene Element aus.
Siehe auch selectedElement.
bool hasSeries(Abstract3DSeries series) |
Gibt zurück, ob series bereits dem Graphen hinzugefügt wurde.
void releaseCustomItem(Custom3DItem item) |
Gibt den Besitz von item zurück und entfernt item aus dem Graphen.
Hinweis: Wenn dasselbe Element erneut zum Diagramm hinzugefügt wird, muss die Texturdatei neu gesetzt werden.
Siehe auch Custom3DItem::textureFile.
void removeCustomItem(Custom3DItem item) |
Entfernt die benutzerdefinierte item. Löscht die ihm zugewiesenen Ressourcen.
void removeCustomItemAt(vector3d position) |
Entfernt alle benutzerdefinierten Elemente unter position. Löscht die ihnen zugewiesenen Ressourcen.
void removeCustomItems() |
Entfernt alle benutzerdefinierten Elemente. Löscht die ihnen zugewiesenen Ressourcen.
void removeSeries(Surface3DSeries series) |
Entfernt die series aus dem Diagramm.
Siehe auch GraphsNode::hasSeries().
Abstract3DAxis selectedAxis() |
Kann verwendet werden, um die ausgewählte Achse nach dem Empfang des Signals selectedElementChanged
mit einem beliebigen Etikettentyp zu erhalten. Die Auswahl ist bis zum nächsten selectedElementChanged
-Signal gültig.
Gibt die ausgewählte Achse oder Null zurück.
Siehe auch selectedElement.
Custom3DItem selectedCustomItem() |
Kann verwendet werden, um das ausgewählte benutzerdefinierte Element nach dem Empfang des Signals selectedElementChanged
mit dem Typ ElementType.CustomItem zu erhalten. Der Besitz des Elements bleibt beim Diagramm. Die Auswahl ist bis zum nächsten selectedElementChanged
Signal gültig.
Gibt das ausgewählte benutzerdefinierte Element oder null zurück.
Siehe auch selectedElement.
qsizetype selectedCustomItemIndex() |
Kann verwendet werden, um den Index des ausgewählten benutzerdefinierten Elements abzufragen, nachdem das Signal selectedElementChanged
mit dem Typ ElementType.CustomItem empfangen wurde. Die Auswahl ist bis zum nächsten selectedElementChanged
-Signal gültig.
Gibt den Index des ausgewählten benutzerdefinierten Eintrags oder -1 zurück.
Siehe auch selectedElement.
int selectedLabelIndex() |
Kann verwendet werden, um den Index des ausgewählten Etiketts nach dem Empfang des Signals selectedElementChanged
mit einem beliebigen Etikettentyp abzufragen. Die Auswahl ist bis zum nächsten selectedElementChanged
-Signal gültig.
Gibt den Index des ausgewählten Etiketts oder -1 zurück.
Siehe auch 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.