Q3DCamera Class
Darstellung einer Kamera im 3D-Raum. Mehr...
| Überschrift: | #include <Q3DCamera> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
| qmake: | QT += datavisualization |
| Seit: | QtDataVisualization 1.0 |
| In QML: | Camera3D |
| Erbt von: | Q3DObject |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Öffentliche Typen
| enum | CameraPreset { CameraPresetNone, CameraPresetFrontLow, CameraPresetFront, CameraPresetFrontHigh, CameraPresetLeftLow, …, CameraPresetDirectlyBelow } |
Eigenschaften
|
|
Öffentliche Funktionen
| Q3DCamera(QObject *parent = nullptr) | |
| virtual | ~Q3DCamera() |
| Q3DCamera::CameraPreset | cameraPreset() const |
| float | maxZoomLevel() const |
| float | minZoomLevel() const |
| void | setCameraPosition(float horizontal, float vertical, float zoom = 100.0f) |
| void | setCameraPreset(Q3DCamera::CameraPreset preset) |
| void | setMaxZoomLevel(float zoomLevel) |
| void | setMinZoomLevel(float zoomLevel) |
| void | setTarget(const QVector3D &target) |
| void | setWrapXRotation(bool isEnabled) |
| void | setWrapYRotation(bool isEnabled) |
| void | setXRotation(float rotation) |
| void | setYRotation(float rotation) |
| void | setZoomLevel(float zoomLevel) |
| QVector3D | target() const |
| bool | wrapXRotation() const |
| bool | wrapYRotation() const |
| float | xRotation() const |
| float | yRotation() const |
| float | zoomLevel() const |
Neu implementierte öffentliche Funktionen
| virtual void | copyValuesFrom(const Q3DObject &source) override |
Signale
| void | cameraPresetChanged(Q3DCamera::CameraPreset preset) |
| void | maxZoomLevelChanged(float zoomLevel) |
| void | minZoomLevelChanged(float zoomLevel) |
| void | targetChanged(const QVector3D &target) |
| void | wrapXRotationChanged(bool isEnabled) |
| void | wrapYRotationChanged(bool isEnabled) |
| void | xRotationChanged(float rotation) |
| void | yRotationChanged(float rotation) |
| void | zoomLevelChanged(float zoomLevel) |
Ausführliche Beschreibung
Q3DCamera stellt eine einfache 3D-Kamera dar, die sich um einen Mittelpunkt dreht und beim Rendern der Datenvisualisierung verwendet wird. Die Klasse bietet einfache Methoden zum Drehen der Kamera um den Ursprung und zum Festlegen des Zoomfaktors.
Dokumentation zu den Mitgliedstypen
enum Q3DCamera::CameraPreset
Vordefinierte Positionen für die Kamera.
| Konstante | Wert | Beschreibung |
|---|---|---|
Q3DCamera::CameraPresetNone | -1 | Wird verwendet, um anzuzeigen, dass keine Voreinstellung festgelegt wurde oder die Szene frei gedreht wurde. |
Q3DCamera::CameraPresetFrontLow | 0 | |
Q3DCamera::CameraPresetFront | 1 | |
Q3DCamera::CameraPresetFrontHigh | 2 | |
Q3DCamera::CameraPresetLeftLow | 3 | |
Q3DCamera::CameraPresetLeft | 4 | |
Q3DCamera::CameraPresetLeftHigh | 5 | |
Q3DCamera::CameraPresetRightLow | 6 | |
Q3DCamera::CameraPresetRight | 7 | |
Q3DCamera::CameraPresetRightHigh | 8 | |
Q3DCamera::CameraPresetBehindLow | 9 | |
Q3DCamera::CameraPresetBehind | 10 | |
Q3DCamera::CameraPresetBehindHigh | 11 | |
Q3DCamera::CameraPresetIsometricLeft | 12 | |
Q3DCamera::CameraPresetIsometricLeftHigh | 13 | |
Q3DCamera::CameraPresetIsometricRight | 14 | |
Q3DCamera::CameraPresetIsometricRightHigh | 15 | |
Q3DCamera::CameraPresetDirectlyAbove | 16 | |
Q3DCamera::CameraPresetDirectlyAboveCW45 | 17 | |
Q3DCamera::CameraPresetDirectlyAboveCCW45 | 18 | |
Q3DCamera::CameraPresetFrontBelow | 19 | In Q3DBars funktionieren ab „CameraPresetFrontBelow“ diese nur noch für Diagramme, die negative Werte enthalten. Bei ausschließlich positiven Werten verhalten sie sich wie „Preset...Low“. |
Q3DCamera::CameraPresetLeftBelow | 20 | |
Q3DCamera::CameraPresetRightBelow | 21 | |
Q3DCamera::CameraPresetBehindBelow | 22 | |
Q3DCamera::CameraPresetDirectlyBelow | 23 | Verhält sich bei Balken, die ausschließlich positive Werte enthalten, wie „CameraPresetFrontLow“. |
Dokumentation der Eigenschaften
cameraPreset : CameraPreset
Diese Eigenschaft enthält die derzeit aktive Kameravoreinstellung.
Ist kein Wert für „ CameraPreset “ festgelegt, wird standardmäßig „ CameraPresetNone “ verwendet.
Zugriffsfunktionen:
| Q3DCamera::CameraPreset | cameraPreset() const |
| void | setCameraPreset(Q3DCamera::CameraPreset preset) |
Benachrichtigungssignal:
| void | cameraPresetChanged(Q3DCamera::CameraPreset preset) |
maxZoomLevel : float
Diese Eigenschaft gibt den maximal zulässigen Zoomfaktor der Kamera an.
Wird der Maximalwert auf einen neuen Wert gesetzt, der unter dem bestehenden Minimalwert liegt, wird auch der Minimalwert an den neuen Maximalwert angepasst. Liegt der aktuelle Wert „ zoomLevel “ außerhalb der neuen Grenzen, wird er ebenfalls angepasst. Der Standardwert ist „ 500.0f “.
Zugriffsfunktionen:
| float | maxZoomLevel() const |
| void | setMaxZoomLevel(float zoomLevel) |
Benachrichtigungssignal:
| void | maxZoomLevelChanged(float zoomLevel) |
Siehe auch „ zoomLevel “ und „ minZoomLevel “.
minZoomLevel : float
Diese Eigenschaft gibt den minimal zulässigen Zoomfaktor der Kamera an.
Wird der Mindestwert auf einen neuen Wert gesetzt, der höher ist als der bestehende Höchstwert, wird auch der Höchstwert an den neuen Mindestwert angepasst. Liegt der aktuelle Wert „ zoomLevel “ außerhalb der neuen Grenzen, wird er ebenfalls angepasst. Der Wert „minZoomLevel“ kann nicht unter „ 1.0f “ gesetzt werden. Der Standardwert ist „ 10.0f “.
Zugriffsfunktionen:
| float | minZoomLevel() const |
| void | setMinZoomLevel(float zoomLevel) |
Notifier-Signal:
| void | minZoomLevelChanged(float zoomLevel) |
Siehe auch „ zoomLevel “ und „ maxZoomLevel “.
[since QtDataVisualization 1.2] target : QVector3D
Diese Eigenschaft enthält das Kameraziel als Vektor oder Scheitelpunkt im 3D-Raum.
Der Standardwert ist QVector3D(0.0, 0.0, 0.0).
Gültige Koordinatenwerte liegen im Bereich von -1.0...1.0, wobei die Grenzwerte die Ränder des entsprechenden Achsenbereichs angeben. Alle Werte außerhalb dieses Bereichs werden auf den Rand begrenzt.
Hinweis: Bei Balkendiagrammen wird die Y-Koordinate ignoriert, und die Kamera zielt immer auf einen Punkt auf dem horizontalen Hintergrund.
Diese Aufzählung wurde in QtDataVisualization 1.2 eingeführt.
Zugriffsfunktionen:
| QVector3D | target() const |
| void | setTarget(const QVector3D &target) |
Notifier-Signal:
| void | targetChanged(const QVector3D &target) |
wrapXRotation : bool
Diese Eigenschaft legt das Verhalten der Minimal- und Maximalgrenzen bei der X-Drehung fest.
Bei der Einstellung „ true “ wird die X-Rotation der Kamera vom Minimalwert zum Maximalwert und vom Maximalwert zum Minimalwert umgeschaltet. Bei der Einstellung „ false “ ist die X-Rotation der Kamera auf den durch den Minimal- und Maximalwert bestimmten Bereich beschränkt. Standardmäßig ist „ true “ eingestellt.
Zugriffsfunktionen:
| bool | wrapXRotation() const |
| void | setWrapXRotation(bool isEnabled) |
Benachrichtigungssignal:
| void | wrapXRotationChanged(bool isEnabled) |
wrapYRotation : bool
Diese Eigenschaft legt das Verhalten der Minimal- und Maximalgrenzen bei der Y-Drehung fest.
Wenn „ true “ festgelegt ist, wird die Y-Drehung der Kamera vom Minimalwert zum Maximalwert und vom Maximalwert zum Minimalwert umgeschaltet. Wenn „ false “ festgelegt ist, wird die Y-Drehung der Kamera auf den durch den Minimal- und Maximalwert bestimmten Bereich beschränkt. Standardmäßig ist „ true “ eingestellt.
Zugriffsfunktionen:
| bool | wrapYRotation() const |
| void | setWrapYRotation(bool isEnabled) |
Benachrichtigungssignal:
| void | wrapYRotationChanged(bool isEnabled) |
xRotation : float
Diese Eigenschaft enthält den X-Drehwinkel der Kamera um den Zielpunkt in Grad.
Zugriffsfunktionen:
| float | xRotation() const |
| void | setXRotation(float rotation) |
Benachrichtigungssignal:
| void | xRotationChanged(float rotation) |
yRotation : float
Diese Eigenschaft enthält den Y-Drehwinkel der Kamera um den Zielpunkt in Grad.
Zugriffsfunktionen:
| float | yRotation() const |
| void | setYRotation(float rotation) |
Benachrichtigungssignal:
| void | yRotationChanged(float rotation) |
zoomLevel : float
Diese Eigenschaft gibt den Zoomfaktor der Kamera in Prozent an.
Der Standardwert „ 100.0f “ bedeutet, dass in der Kamera kein Vergrößerungs- oder Verkleinerungsfaktor eingestellt ist. Der Wert wird durch die Eigenschaften „ minZoomLevel “ und „ maxZoomLevel “ begrenzt.
Zugriffsfunktionen:
| float | zoomLevel() const |
| void | setZoomLevel(float zoomLevel) |
Benachrichtigungssignal:
| void | zoomLevelChanged(float zoomLevel) |
Siehe auch „ minZoomLevel “ und „ maxZoomLevel “.
Dokumentation der Mitgliedsfunktionen
[explicit] Q3DCamera::Q3DCamera(QObject *parent = nullptr)
Erstellt eine neue 3D-Kamera, deren Position standardmäßig auf den Ursprung gesetzt ist, deren Blickrichtung zur Y-Achse zeigt und die standardmäßig auf den Ursprung ausgerichtet ist. Ein optionaler Parameter „ parent “ kann angegeben werden und wird dann an den Konstruktor von „ QObject “ übergeben.
[virtual noexcept] Q3DCamera::~Q3DCamera()
Löscht das Kameraobjekt.
[override virtual] void Q3DCamera::copyValuesFrom(const Q3DObject &source)
Implementiert: ` Q3DObject::copyValuesFrom` (const Q3DObject &source).
Kopiert die Eigenschaften der 3D-Kamera von der angegebenen Quellkamera. Die Werte werden von „ source “ in dieses Objekt kopiert.
void Q3DCamera::setCameraPosition(float horizontal, float vertical, float zoom = 100.0f)
Hilfsfunktion zum Festlegen der Kameradrehungen und der Entfernung. Die Eigenschaften „horizontal “ und „ vertical “ definieren die zu verwendenden Kameradrehungen. Der optionale Parameter „ zoom “ kann angegeben werden, um den Zoom-Prozentsatz der Kamera innerhalb der durch die Eigenschaften „ minZoomLevel “ und „ maxZoomLevel “ definierten Grenzen festzulegen.
© 2026 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.