QCamera Class

class Qt3DRender::QCamera

Die 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 &center, 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)

Detaillierte Beschreibung

Dokumentation der Mitgliedstypen

enum QCamera::CameraTranslationOption

Diese Aufzählung gibt an, wie das Zentrum der Kameraansicht übersetzt wird

KonstanteWertBeschreibung
Qt3DRender::QCamera::TranslateViewCenter0Verschiebe den Mittelpunkt der Ansicht, so dass die Blickrichtung gleich bleibt
Qt3DRender::QCamera::DontTranslateViewCenter1Den 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.

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 &center, 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.