QCamera Class
class Qt3DRender::QCameraDie Klasse QCamera definiert einen Blickwinkel, durch den die Szene gerendert wird. Mehr...
Kopfzeile: | #include <Qt3DRender/QCamera> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | Camera |
Vererbt: | Qt3DCore::QEntity |
Status: | Veraltet |
Öffentliche Typen
enum | CameraTranslationOption { TranslateViewCenter, DontTranslateViewCenter } |
Eigenschaften
|
|
Öffentliche Funktionen
QCamera(Qt3DCore::QNode *parent = nullptr) | |
float | aspectRatio() const |
float | bottom() const |
float | exposure() const |
float | farPlane() const |
float | fieldOfView() const |
float | left() const |
Qt3DRender::QCameraLens * | lens() const |
float | nearPlane() const |
void | pan(float angle) |
void | pan(float angle, const QVector3D &axis) |
void | panAboutViewCenter(float angle) |
void | panAboutViewCenter(float angle, const QVector3D &axis) |
QQuaternion | panRotation(float angle) const |
QVector3D | position() const |
QMatrix4x4 | projectionMatrix() const |
Qt3DRender::QCameraLens::ProjectionType | projectionType() const |
float | right() const |
void | roll(float angle) |
void | rollAboutViewCenter(float angle) |
QQuaternion | rollRotation(float angle) const |
void | rotate(const QQuaternion &q) |
void | rotateAboutViewCenter(const QQuaternion &q) |
QQuaternion | rotation(float angle, const QVector3D &axis) const |
void | tilt(float angle) |
void | tiltAboutViewCenter(float angle) |
QQuaternion | tiltRotation(float angle) const |
float | top() const |
Qt3DCore::QTransform * | transform() const |
void | translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter) |
void | translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter) |
QVector3D | upVector() const |
QVector3D | viewCenter() const |
QVector3D | viewVector() const |
Öffentliche Slots
void | setAspectRatio(float aspectRatio) |
void | setBottom(float bottom) |
void | setExposure(float exposure) |
void | setFarPlane(float farPlane) |
void | setFieldOfView(float fieldOfView) |
void | setLeft(float left) |
void | setNearPlane(float nearPlane) |
void | setPosition(const QVector3D &position) |
void | setProjectionMatrix(const QMatrix4x4 &projectionMatrix) |
void | setProjectionType(Qt3DRender::QCameraLens::ProjectionType type) |
void | setRight(float right) |
void | setTop(float top) |
void | setUpVector(const QVector3D &upVector) |
void | setViewCenter(const QVector3D &viewCenter) |
void | viewAll() |
void | viewEntity(Qt3DCore::QEntity *entity) |
void | viewSphere(const QVector3D ¢er, float radius) |
Signale
void | aspectRatioChanged(float aspectRatio) |
void | bottomChanged(float bottom) |
void | exposureChanged(float exposure) |
void | farPlaneChanged(float farPlane) |
void | fieldOfViewChanged(float fieldOfView) |
void | leftChanged(float left) |
void | nearPlaneChanged(float nearPlane) |
void | positionChanged(const QVector3D &position) |
void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix) |
void | projectionTypeChanged(Qt3DRender::QCameraLens::ProjectionType projectionType) |
void | rightChanged(float right) |
void | topChanged(float top) |
void | upVectorChanged(const QVector3D &upVector) |
void | viewCenterChanged(const QVector3D &viewCenter) |
void | viewVectorChanged(const QVector3D &viewVector) |
Dokumentation der Mitgliedstypen
enum QCamera::CameraTranslationOption
Diese Aufzählung gibt an, wie das Zentrum der Kameraansicht übersetzt wird
Konstante | Wert | Beschreibung |
---|---|---|
Qt3DRender::QCamera::TranslateViewCenter | 0 | Verschiebe den Mittelpunkt der Ansicht, so dass die Blickrichtung gleich bleibt |
Qt3DRender::QCamera::DontTranslateViewCenter | 1 | Den Mittelpunkt der Ansicht nicht verschieben, so dass sich die Ansichtsrichtung ändert |
Dokumentation der Eigenschaft
aspectRatio : float
Speichert das aktuelle Seitenverhältnis.
Zugriffsfunktionen:
float | aspectRatio() const |
void | setAspectRatio(float aspectRatio) |
Benachrichtigungssignal:
void | aspectRatioChanged(float aspectRatio) |
bottom : float
Enthält die aktuelle Unterseite der Kamera.
Diese Eigenschaft ist nur relevant, wenn projectionType QCameraLens::OrthographicProjection ist.
Zugriffsfunktionen:
float | bottom() const |
void | setBottom(float bottom) |
Benachrichtigungssignal:
void | bottomChanged(float bottom) |
exposure : float
Speichert die aktuelle Belichtung der Kamera.
Der Standardwert ist 0.0.
Das MetalRoughMaterial in Qt 3D Extras ist derzeit das einzige Material, das die Kamerabelichtung verwendet. Negative Werte lassen das Material dunkler erscheinen, positive Werte heller.
Benutzerdefinierte Materialien können den Wert anders interpretieren.
Zugriffsfunktionen:
float | exposure() const |
void | setExposure(float exposure) |
Benachrichtigungssignal:
void | exposureChanged(float exposure) |
farPlane : float
Enthält die aktuelle kameraferne Ebene. Objekte, die weiter von der Kamera entfernt sind als die farPlane, werden nicht gerendert.
Zugriffsfunktionen:
float | farPlane() const |
void | setFarPlane(float farPlane) |
Notifier-Signal:
void | farPlaneChanged(float farPlane) |
fieldOfView : float
Enthält das aktuelle vertikale Sichtfeld in Grad.
Zusammen mit aspectRatio bestimmt diese Eigenschaft, wie viel von der Szene für die Kamera sichtbar ist. In dieser Hinsicht könnte man sie als Analogie zur Wahl eines Weitwinkel- (breites horizontales Sichtfeld) oder Teleobjektivs (enges horizontales Sichtfeld) betrachten, je nachdem, wie viel von einer Szene man einfangen möchte.
fieldOfView ist nur relevant, wenn projectionType QCameraLens::PerspectiveProjection ist.
Zugriffsfunktionen:
float | fieldOfView() const |
void | setFieldOfView(float fieldOfView) |
Benachrichtigungssignal:
void | fieldOfViewChanged(float fieldOfView) |
left : float
Enthält die aktuelle linke Seite der Kamera.
Diese Eigenschaft ist nur relevant, wenn projectionType QCameraLens::OrthographicProjection ist.
Zugriffsfunktionen:
float | left() const |
void | setLeft(float left) |
Melder-Signal:
void | leftChanged(float left) |
[read-only]
lens : Qt3DRender::QCameraLens* const
Enthält die Qt3DRender::QCameraLens Komponente der Kamera.
Zugriff auf Funktionen:
Qt3DRender::QCameraLens * | lens() const |
nearPlane : float
Enthält die aktuelle kameranahe Ebene. Objekte, die näher an der Kamera sind als die nearPlane, werden nicht gerendert.
Zugriffsfunktionen:
float | nearPlane() const |
void | setNearPlane(float nearPlane) |
Notifier-Signal:
void | nearPlaneChanged(float nearPlane) |
position : QVector3D
Hält die Position der Kamera in Koordinaten relativ zum übergeordneten Objekt.
Zugriffsfunktionen:
QVector3D | position() const |
void | setPosition(const QVector3D &position) |
Melder-Signal:
void | positionChanged(const QVector3D &position) |
projectionMatrix : QMatrix4x4
Enthält die aktuelle Projektionsmatrix der Kamera.
Zugriffsfunktionen:
QMatrix4x4 | projectionMatrix() const |
void | setProjectionMatrix(const QMatrix4x4 &projectionMatrix) |
Melder-Signal:
void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix) |
projectionType : Qt3DRender::QCameraLens::ProjectionType
Enthält den Typ der Kameraprojektion. Der Standardwert ist QCameraLens::PerspectiveProjection.
- QCameraLens::OrthographicProjection - Parallele Linien erscheinen parallel. Objekte erscheinen unabhängig von der Entfernung in der gleichen Größe.
- QCameraLens::PerspectiveProjection - Parallele Linien scheinen sich in der Ferne zu treffen. Objekte scheinen zu schrumpfen, je weiter sie von der Kamera entfernt sind.
- QCameraLens::FrustumProjection
- QCameraLens::CustomProjection
Zugriffsfunktionen:
Qt3DRender::QCameraLens::ProjectionType | projectionType() const |
void | setProjectionType(Qt3DRender::QCameraLens::ProjectionType type) |
Melder-Signal:
void | projectionTypeChanged(Qt3DRender::QCameraLens::ProjectionType projectionType) |
Siehe auch Qt3DRender::QCameraLens::ProjectionType.
right : float
Enthält das aktuelle Recht der Kamera.
Diese Eigenschaft ist nur relevant, wenn projectionType QCameraLens::OrthographicProjection ist.
Zugriffsfunktionen:
float | right() const |
void | setRight(float right) |
Melder-Signal:
void | rightChanged(float right) |
top : float
Enthält die aktuelle Oberkante der Kamera.
Diese Eigenschaft ist nur relevant, wenn projectionType QCameraLens::OrthographicProjection ist.
Zugriffsfunktionen:
float | top() const |
void | setTop(float top) |
Benachrichtigungssignal:
void | topChanged(float top) |
[read-only]
transform : Qt3DCore::QTransform* const
Enthält die Qt3DCore::QTransform Komponente der Kamera.
Zugriff auf Funktionen:
Qt3DCore::QTransform * | transform() const |
upVector : QVector3D
Enthält den Aufwärtsvektor der Kamera in Koordinaten relativ zum übergeordneten Objekt.
Der Aufwärtsvektor gibt an, in welche Richtung die Oberseite der Kamera gerichtet ist. Stellen Sie sich vor, Sie nehmen ein Foto auf: Nachdem Sie sich positioniert und die Kamera auf Ihr Ziel gerichtet haben, können Sie die Kamera nach links oder rechts drehen, um ein Hoch- oder Querformat (oder einen Winkel!) zu erhalten. upVector ermöglicht Ihnen, diese Art der Bewegung zu steuern.
Zugriff auf Funktionen:
QVector3D | upVector() const |
void | setUpVector(const QVector3D &upVector) |
Benachrichtigungssignal:
void | upVectorChanged(const QVector3D &upVector) |
viewCenter : QVector3D
Enthält das Ansichtszentrum der Kamera in Koordinaten relativ zum übergeordneten Objekt.
Intuitiv ist das viewCenter der Ort, auf den die Kamera zeigt.
Zugriffsfunktionen:
QVector3D | viewCenter() const |
void | setViewCenter(const QVector3D &viewCenter) |
Melder-Signal:
void | viewCenterChanged(const QVector3D &viewCenter) |
[read-only]
viewVector : const QVector3D
Enthält den Sichtvektor der Kamera in Koordinaten relativ zum übergeordneten Objekt.
Dieser Vektor beschreibt die Verschiebung von der Kamera (position) zu ihrem Ziel (viewCenter).
Zugriffsfunktionen:
QVector3D | viewVector() const |
Benachrichtigungssignal:
void | viewVectorChanged(const QVector3D &viewVector) |
Member Function Dokumentation
[explicit]
QCamera::QCamera(Qt3DCore::QNode *parent = nullptr)
Erzeugt eine neue QCamera-Instanz mit der angegebenen parent.
Qt3DRender::QCameraLens *QCamera::lens() const
Gibt das aktuelle Objektiv zurück.
Hinweis: Getter-Funktion für die Eigenschaft lens.
[invokable]
void QCamera::pan(float angle)
Passt den Schwenkwinkel der Kamera um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::pan(float angle, const QVector3D &axis)
Passt den Schwenkwinkel der Kamera um angle in Grad auf einem gewählten axis an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::panAboutViewCenter(float angle)
Passt den Kameraschwenk um die Ansichtsmitte um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::panAboutViewCenter(float angle, const QVector3D &axis)
Passt den Kameraschwenk um das Ansichtszentrum um angle in Grad auf axis an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
QQuaternion QCamera::panRotation(float angle) const
Gibt die berechnete Schwenkrotation in Bezug auf angle in Grad zurück, die zum Einstellen des Kameraschwenks oder der Links-/Rechtsdrehung auf der Y-Achse verwendet wird.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::roll(float angle)
Passt die Kamerarolle um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::rollAboutViewCenter(float angle)
Passt die Kamerarolle um die Ansichtsmitte um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
QQuaternion QCamera::rollRotation(float angle) const
Gibt die berechnete Drehung der Kamera in Bezug auf angle in Grad zurück, um die Drehung der Kamera auf der Z-Achse anzupassen.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::rotate(const QQuaternion &q)
Dreht die Kamera mit Hilfe eines Quaternions in q.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::rotateAboutViewCenter(const QQuaternion &q)
Dreht die Kamera um das Ansichtszentrum mit Hilfe eines Quaternions in q.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
QQuaternion QCamera::rotation(float angle, const QVector3D &axis) const
Gibt die berechnete Drehung in Bezug auf die angle in Grad und die gewählte axis zurück.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[slot]
void QCamera::setAspectRatio(float aspectRatio)
Setzt das Seitenverhältnis der Kamera auf aspectRatio.
Hinweis: Setter-Funktion für die Eigenschaft aspectRatio.
Siehe auch aspectRatio().
[slot]
void QCamera::setBottom(float bottom)
Setzt den unteren Rand der Kamera auf bottom.
Hinweis: Setter-Funktion für die Eigenschaft bottom.
Siehe auch bottom().
[slot]
void QCamera::setExposure(float exposure)
Setzt die Belichtung der Kamera auf exposure.
Hinweis: Setter-Funktion für die Eigenschaft exposure.
Siehe auch exposure().
[slot]
void QCamera::setFarPlane(float farPlane)
Setzt die ferne Ebene der Kamera auf farPlane
Hinweis: Setter-Funktion für die Eigenschaft farPlane.
Siehe auch farPlane().
[slot]
void QCamera::setFieldOfView(float fieldOfView)
Setzt das Sichtfeld der Kamera auf fieldOfView in Grad.
Hinweis: Setter-Funktion für die Eigenschaft fieldOfView.
Siehe auch fieldOfView().
[slot]
void QCamera::setLeft(float left)
Setzt die linke Seite der Kamera auf left.
Hinweis: Setter-Funktion für die Eigenschaft left.
Siehe auch left().
[slot]
void QCamera::setNearPlane(float nearPlane)
Setzt die nahe Ebene der Kamera auf nearPlane.
Hinweis: Setter-Funktion für die Eigenschaft nearPlane.
Siehe auch nearPlane().
[slot]
void QCamera::setPosition(const QVector3D &position)
Setzt die Position der Kamera im 3D-Raum auf position.
Hinweis: Setter-Funktion für die Eigenschaft position.
Siehe auch position().
[slot]
void QCamera::setProjectionMatrix(const QMatrix4x4 &projectionMatrix)
Setzt die Projektionsmatrix der Kamera auf projectionMatrix.
Hinweis: Setter-Funktion für die Eigenschaft projectionMatrix.
Siehe auch projectionMatrix().
[slot]
void QCamera::setProjectionType(Qt3DRender::QCameraLens::ProjectionType type)
Setzt den Projektionstyp der Kamera auf type.
Hinweis: Setter-Funktion für die Eigenschaft projectionType.
Siehe auch projectionType().
[slot]
void QCamera::setRight(float right)
Setzt das Recht der Kamera auf right.
Hinweis: Setter-Funktion für die Eigenschaft right.
Siehe auch right().
[slot]
void QCamera::setTop(float top)
Setzt den oberen Rand der Kamera auf top.
Hinweis: Setter-Funktion für die Eigenschaft top.
Siehe auch top().
[slot]
void QCamera::setUpVector(const QVector3D &upVector)
Setzt den Aufwärtsvektor der Kamera auf upVector.
Hinweis: Setter-Funktion für die Eigenschaft upVector.
Siehe auch upVector().
[slot]
void QCamera::setViewCenter(const QVector3D &viewCenter)
Setzt den Blickpunkt der Kamera auf viewCenter.
Hinweis: Setter-Funktion für die Eigenschaft viewCenter.
Siehe auch viewCenter().
[invokable]
void QCamera::tilt(float angle)
Passt den Neigungswinkel der Kamera um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::tiltAboutViewCenter(float angle)
Passt die Kameraneigung um die Ansichtsmitte um angle in Grad an.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
QQuaternion QCamera::tiltRotation(float angle) const
Gibt die berechnete Neigungsdrehung in Bezug auf angle in Grad zurück, die zur Anpassung der Kameraneigung oder der Auf-/Abwärtsdrehung auf der X-Achse verwendet wird.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
Qt3DCore::QTransform *QCamera::transform() const
Gibt die Position der Kamera über transform zurück.
Hinweis: Getter-Funktion für die Eigenschaft transform.
[invokable]
void QCamera::translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)
Verschiebt die Kameraposition und den Ansichtsvektor um vLocal in lokalen Koordinaten. Mit option kann man einschalten, ob das Ansichtszentrum übersetzt werden soll.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[invokable]
void QCamera::translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)
Verschiebt die Position der Kamera und ihren Ansichtsvektor um vWorld in Weltkoordinaten. Mit option kann man einschalten, ob der Mittelpunkt der Ansicht verschoben werden soll.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
[slot]
void QCamera::viewAll()
Dreht und verschiebt die Kamera so, dass die viewCenter in der Mitte des Bounding Volumes der Szene liegt und die gesamte Szene in den View Port passt.
Hinweis: Funktioniert nur, wenn sich das Objektiv im perspektivischen oder orthografischen Projektionsmodus befindet.
Siehe auch Qt3D.Render::Camera::projectionType.
[slot]
void QCamera::viewEntity(Qt3DCore::QEntity *entity)
Dreht und verschiebt die Kamera so, dass die viewCenter in der Mitte des Begrenzungsvolumens von entity liegt und das gesamte Objekt in den View Port passt.
Hinweis: Funktioniert nur, wenn sich das Objektiv im perspektivischen oder orthografischen Projektionsmodus befindet.
Siehe auch Camera.projectionType.
[slot]
void QCamera::viewSphere(const QVector3D ¢er, float radius)
Dreht und verschiebt die Kamera so, dass viewCenter center ist und eine Kugel von radius in die Sichtöffnung passt.
Hinweis: Funktioniert nur, wenn sich das Objektiv im perspektivischen oder orthografischen Projektionsmodus befindet.
Siehe auch Qt3D.Render::Camera::projectionType.
© 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.