Auf dieser Seite

Qt3DRender::QCamera Class

class Qt3DRender::QCamera

Die Klasse „QCamera“ definiert einen Blickpunkt, durch den die Szene gerendert wird. Mehr...

Header: #include <Qt3DRender/QCamera>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: Camera
Erbt von: Qt3DCore::QEntity
Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Ö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 zu Mitgliedstypen

enum QCamera::CameraTranslationOption

Diese Enumeration legt fest, wie der Mittelpunkt der Kameraansicht verschoben wird

KonstanteWertBeschreibung
Qt3DRender::QCamera::TranslateViewCenter0Verschiebung des Blickpunkts, wobei die Blickrichtung unverändert bleibt
Qt3DRender::QCamera::DontTranslateViewCenter1Der Mittelpunkt der Ansicht wird nicht verschoben, wodurch sich die Blickrichtung ändert

Eigenschaftsdokumentation

aspectRatio : float

Behält das aktuelle Seitenverhältnis bei.

Zugriffsfunktionen:

float aspectRatio() const
void setAspectRatio(float aspectRatio)

Benachrichtigungssignal:

void aspectRatioChanged(float aspectRatio)

bottom : float

Enthält die aktuelle Unterkante der Kamera.

Diese Eigenschaft ist nur relevant, wenn „ projectionType “ auf „ QCameraLens::OrthographicProjection “ gesetzt ist.

Zugriffsfunktionen:

float bottom() const
void setBottom(float bottom)

Notifier-Signal:

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 bereitgestellte Material, das die Belichtung der Kamera nutzt. Negative Werte führen dazu, dass das Material dunkler wird, positive Werte hingegen, dass es heller wird.

Benutzerdefinierte Materialien können den Wert unterschiedlich interpretieren.

Zugriffsfunktionen:

float exposure() const
void setExposure(float exposure)

Notifier-Signal:

void exposureChanged(float exposure)

farPlane : float

Enthält die aktuelle Fernebene der Kamera. 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

Gibt das aktuelle vertikale Sichtfeld in Grad an.

Zusammen mit „ aspectRatio “ bestimmt diese Eigenschaft, wie viel von der Szene für die Kamera sichtbar ist. In dieser Hinsicht kann man sich das analog zur Wahl eines Weitwinkelobjektivs (breites horizontales Sichtfeld) oder eines Teleobjektivs (enges horizontales Sichtfeld) vorstellen, je nachdem, wie viel von einer Szene man erfassen möchte.

„fieldOfView“ ist nur relevant, wenn „ projectionType “ auf „ QCameraLens::PerspectiveProjection “ gesetzt ist.

Zugriffsfunktionen:

float fieldOfView() const
void setFieldOfView(float fieldOfView)

Notifier-Signal:

void fieldOfViewChanged(float fieldOfView)

left : float

Enthält die aktuelle Position der Kamera auf der linken Seite.

Diese Eigenschaft ist nur relevant, wenn „ projectionType “ auf „ QCameraLens::OrthographicProjection “ gesetzt ist.

Zugriffsfunktionen:

float left() const
void setLeft(float left)

Notifier-Signal:

void leftChanged(float left)

[read-only] lens : Qt3DRender::QCameraLens* const

Enthält die Komponente „Qt3DRender::QCameraLens“ der Kamera.

Zugriffsfunktionen:

Qt3DRender::QCameraLens *lens() const

nearPlane : float

Legt die aktuelle Nah-Ebene der Kamera fest. Objekte, die näher an der Kamera liegen als die Nah-Ebene, werden nicht gerendert.

Zugriffsfunktionen:

float nearPlane() const
void setNearPlane(float nearPlane)

Notifier-Signal:

void nearPlaneChanged(float nearPlane)

position : QVector3D

Behält die Position der Kamera in Koordinaten relativ zum übergeordneten Objekt bei.

Zugriffsfunktionen:

QVector3D position() const
void setPosition(const QVector3D &position)

Notifier-Signal:

void positionChanged(const QVector3D &position)

projectionMatrix : QMatrix4x4

Enthält die aktuelle Projektionsmatrix der Kamera.

Zugriffsfunktionen:

QMatrix4x4 projectionMatrix() const
void setProjectionMatrix(const QMatrix4x4 &projectionMatrix)

Benachrichtigungssignal:

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)

Benachrichtigungssignal:

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 “ auf „ QCameraLens::OrthographicProjection “ gesetzt ist.

Zugriffsfunktionen:

float right() const
void setRight(float right)

Benachrichtigungssignal:

void rightChanged(float right)

top : float

Enthält die aktuelle obere Kante der Kamera.

Diese Eigenschaft ist nur relevant, wenn „ projectionType “ auf „ QCameraLens::OrthographicProjection “ gesetzt 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.

Zugriffsfunktionen:

Qt3DCore::QTransform *transform() const

upVector : QVector3D

Enthält den „Up“-Vektor der Kamera in Koordinaten relativ zur übergeordneten Entität.

Der „up“-Vektor gibt an, in welche Richtung die Oberseite der Kamera zeigt. Stellen Sie sich vor, Sie machen ein Foto: Nachdem Sie sich positioniert und die Kamera auf Ihr Motiv gerichtet haben, drehen Sie die Kamera möglicherweise nach links oder rechts, um eine Aufnahme im Hoch- oder Querformat (oder in einem Winkel!) zu erhalten. Mit „upVector“ können Sie diese Art von Bewegung steuern.

Zugriffsfunktionen:

QVector3D upVector() const
void setUpVector(const QVector3D &upVector)

Notifier-Signal:

void upVectorChanged(const QVector3D &upVector)

viewCenter : QVector3D

Speichert den Blickpunkt der Kamera in Koordinaten relativ zur übergeordneten Entität.

Intuitiv gesehen ist das „viewCenter“ der Ort, auf den die Kamera gerichtet ist.

Zugriffsfunktionen:

QVector3D viewCenter() const
void setViewCenter(const QVector3D &viewCenter)

Notifier-Signal:

void viewCenterChanged(const QVector3D &viewCenter)

[read-only] viewVector : QVector3D

Enthält den Blickvektor der Kamera in Koordinaten relativ zur übergeordneten Entität.

Dieser Vektor beschreibt die Verschiebung von der Kamera (position) zu ihrem Ziel (viewCenter).

Zugriffsfunktionen:

QVector3D viewVector() const

Benachrichtigungssignal:

void viewVectorChanged(const QVector3D &viewVector)

Dokumentation der Member-Funktionen

[explicit] QCamera::QCamera(Qt3DCore::QNode *parent = nullptr)

Erstellt eine neue QCamera-Instanz mit dem angegebenen „ parent “.

Qt3DRender::QCameraLens *QCamera::lens() const

Gibt die aktuelle Linse 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 Metaobjektsystem und aus QML 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 ausgewählten axis an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::panAboutViewCenter(float angle)

Passt die Kameraverschiebung um den Blickpunkt um angle in Grad an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::panAboutViewCenter(float angle, const QVector3D &axis)

Passt die Kameraverschiebung um den Blickpunkt um angle in Grad auf axis an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] QQuaternion QCamera::panRotation(float angle) const

Gibt die berechnete Schwenkdrehung in Bezug auf das angle in Grad zurück, die zur Anpassung der Schwenk- oder Links-/Rechts-Drehung der Kamera um die Y-Achse herangezogen wird.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::roll(float angle)

Passt die Kameraroll um angle in Grad an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::rollAboutViewCenter(float angle)

Passt die Rollachse der Kamera um den Betrachtungsmittelpunkt um angle Grad an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] QQuaternion QCamera::rollRotation(float angle) const

Gibt die berechnete Rollrotation in Bezug auf das angle in Grad zurück, die zur Anpassung der Roll- oder Neigungsrotation der Kamera nach links/rechts um die Z-Achse herangezogen wird.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::rotate(const QQuaternion &q)

Dreht die Kamera mithilfe eines Quaternions in „ q “.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::rotateAboutViewCenter(const QQuaternion &q)

Dreht die Kamera mithilfe eines Quaternions in q um den Blickpunkt.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] QQuaternion QCamera::rotation(float angle, const QVector3D &axis) const

Gibt die berechnete Drehung in Bezug auf das „ angle “ in Grad und den gewählten „ axis “ zurück.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[slot] void QCamera::setAspectRatio(float aspectRatio)

Stellt das Seitenverhältnis der Kamera auf „ aspectRatio “ ein.

Hinweis: Setter -Funktion für die Eigenschaft ` aspectRatio`.

Siehe auch ` aspectRatio()`.

[slot] void QCamera::setBottom(float bottom)

Setzt die Unterkante der Kamera auf „ bottom “.

Hinweis: Setter -Funktion für die Eigenschaft ` bottom`.

Siehe auch „ bottom()“.

[slot] void QCamera::setExposure(float exposure)

Stellt die Belichtung der Kamera auf „ exposure “ ein.

Hinweis: Setter -Funktion für die Eigenschaft „ exposure “.

Siehe auch „ exposure()“.

[slot] void QCamera::setFarPlane(float farPlane)

Legt die hintere Begrenzungsebene der Kamera auf farPlane

Hinweis: Setter -Funktion für die Eigenschaft „ farPlane “.

Siehe auch ` farPlane()`.

[slot] void QCamera::setFieldOfView(float fieldOfView)

Stellt das Sichtfeld der Kamera auf fieldOfView in Grad ein.

Hinweis: Setter -Funktion für die Eigenschaft „ fieldOfView “.

Siehe auch ` fieldOfView()`.

[slot] void QCamera::setLeft(float left)

Setzt den linken Rand der Kamera auf „ left “.

Hinweis: Setter -Funktion für die Eigenschaft „ left “.

Siehe auch ` left()`.

[slot] void QCamera::setNearPlane(float nearPlane)

Setzt die Naheebene der Kamera auf nearPlane.

Hinweis: Setter -Funktion für die Eigenschaft „ nearPlane “.

Siehe auch ` nearPlane()`.

[slot] void QCamera::setPosition(const QVector3D &position)

Stellt die Position der Kamera im 3D-Raum auf „ position “ ein.

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)

Stellt den Projektionstyp der Kamera auf „ type “ ein.

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 die Oberkante 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 Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::tiltAboutViewCenter(float angle)

Passt die Neigung der Kamera um den Blickpunkt um angle in Grad an.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] QQuaternion QCamera::tiltRotation(float angle) const

Gibt die berechnete Neigungsdrehung in Grad in Bezug auf das angle zurück, die zur Anpassung der Neigung oder der Drehung der Kamera um die X-Achse (nach oben/unten) herangezogen wird.

Hinweis: Diese Funktion kann über das Metaobjekt-System und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

Qt3DCore::QTransform *QCamera::transform() const

Gibt die Position der Kamera über die Transformation zurück.

Hinweis: Getter -Funktion für die Eigenschaft „transform“.

[invokable] void QCamera::translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)

Verschiebt die Position der Kamera und ihren Blickvektor um vLocal in lokale Koordinaten. Mit dem Parameter „ option “ kann festgelegt werden, ob der Blickpunkt mitverschoben werden soll.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QCamera::translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)

Verschiebt die Position der Kamera und ihren Blickvektor um vWorld in Weltkoordinaten. Mit dem Parameter „ option “ kann festgelegt werden, ob der Blickpunkt mitverschoben werden soll.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[slot] void QCamera::viewAll()

Dreht und verschiebt die Kamera so, dass ihr „ viewCenter “ im Mittelpunkt des Begrenzungsvolumens der Szene liegt und die gesamte Szene in den Ansichtsbereich passt.

Hinweis: Funktioniertnur , wenn sich das Objektiv im perspektivischen oder orthogonalen Projektionsmodus befindet.

Siehe auch „ Qt3D.Render::Camera::projectionType “.

[slot] void QCamera::viewEntity(Qt3DCore::QEntity *entity)

Dreht und verschiebt die Kamera so, dass ihr „ viewCenter “ im Mittelpunkt des Begrenzungsvolumens des „ entity “ liegt und die gesamte Entität in den Ansichtsbereich passt.

Hinweis: Funktioniertnur , wenn sich das Objektiv im perspektivischen oder orthogonalen Projektionsmodus befindet.

Siehe auch „ Camera.projectionType “.

[slot] void QCamera::viewSphere(const QVector3D &center, float radius)

Dreht und verschiebt die Kamera so, dass ihr „ viewCenter “ auf „ center “ gesetzt ist und eine Kugel mit den Koordinaten „ radius “ in den Ansichtsbereich passt.

Hinweis: Funktioniertnur , wenn sich das Objektiv im perspektivischen oder orthogonalen Projektionsmodus befindet.

Siehe auch Qt3D.Render::Camera::projectionType.

© 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.