Q3DCamera 类

3D空间中摄像机的表示。 更多...

头文件 #include <Q3DCamera>
CMakefind_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmakeQT += datavisualization
QtDataVisualization 1.0
由以下实例化 Camera3D
继承 Q3DObject

公共类型

枚举CameraPreset { CameraPresetNone, CameraPresetFrontLow, CameraPresetFront, CameraPresetFrontHigh, CameraPresetLeftLow, …, CameraPresetDirectlyBelow }

属性

公共函数

Q3DCamera(QObject *parent = nullptr)
虚拟~Q3DCamera()
Q3DCamera::CameraPresetcameraPreset() const
floatmaxZoomLevel() const
floatminZoomLevel() const
voidsetCameraPosition(float horizontal, float vertical, float zoom = 100.0f)
voidsetCameraPreset(Q3DCamera::CameraPreset preset)
voidsetMaxZoomLevel(float zoomLevel)
voidsetMinZoomLevel(float zoomLevel)
voidsetTarget(const QVector3D &target)
voidsetWrapXRotation(bool isEnabled)
voidsetWrapYRotation(bool isEnabled)
voidsetXRotation(float rotation)
voidsetYRotation(float rotation)
voidsetZoomLevel(float zoomLevel)
QVector3Dtarget() const
boolwrapXRotation() const
boolwrapYRotation() const
floatxRotation() const
floatyRotation() const
floatzoomLevel() const

重写的公共函数

virtual voidcopyValuesFrom(const Q3DObject &source) override

信号

voidcameraPresetChanged(Q3DCamera::CameraPreset preset)
voidmaxZoomLevelChanged(float zoomLevel)
voidminZoomLevelChanged(float zoomLevel)
voidtargetChanged(const QVector3D &target)
voidwrapXRotationChanged(bool isEnabled)
voidwrapYRotationChanged(bool isEnabled)
voidxRotationChanged(float rotation)
voidyRotationChanged(float rotation)
voidzoomLevelChanged(float zoomLevel)

详细描述

Q3DCamera 表示用于渲染数据可视化时的基本中心点环绕 3D 摄像机,该类提供简单的旋转摄像机围绕原点和设置缩放级别的函数。

成员类型文档

enum Q3DCamera::CameraPreset

摄像机的预定位置。

常量描述
Q3DCamera::CameraPresetNone-1用于表示未设置预定或场景已经自由旋转。
Q3DCamera::CameraPresetFrontLow0 
Q3DCamera::CameraPresetFront1 
Q3DCamera::CameraPresetFrontHigh2 
Q3DCamera::CameraPresetLeftLow3 
Q3DCamera::CameraPresetLeft4 
Q3DCamera::CameraPresetLeftHigh5 
Q3DCamera::CameraPresetRightLow6 
Q3DCamera::CameraPresetRight7 
Q3DCamera::CameraPresetRightHigh8 
Q3DCamera::CameraPresetBehindLow9 
Q3DCamera::CameraPresetBehind10 
Q3DCamera::CameraPresetBehindHigh11 
Q3DCamera::CameraPresetIsometricLeft12 
Q3DCamera::CameraPresetIsometricLeftHigh13 
Q3DCamera::CameraPresetIsometricRight14 
Q3DCamera::CameraPresetIsometricRightHigh15 
Q3DCamera::CameraPresetDirectlyAbove16 
Q3DCamera::CameraPresetDirectlyAboveCW4517 
Q3DCamera::CameraPresetDirectlyAboveCCW4518 
Q3DCamera::CameraPresetFrontBelow19In Q3DBars from CameraPresetFrontBelow onward these only work for graphs including negative values. They act as Preset...Low for positive-only values.
Q3DCamera::CameraPresetLeftBelow20 
Q3DCamera::CameraPresetRightBelow21 
Q3DCamera::CameraPresetBehindBelow22 
Q3DCamera::CameraPresetDirectlyBelow23对于仅包含正数的条形图,相当于 CameraPresetFrontLow。

属性文档

cameraPreset : CameraPreset

此属性保存当前活动的摄像机预定。

如果没有设置 CameraPreset 值,则默认使用 CameraPresetNone

访问函数

Q3DCamera::CameraPresetcameraPreset() const
voidsetCameraPreset(Q3DCamera::CameraPreset preset)

通知信号

voidcameraPresetChanged(Q3DCamera::CameraPreset preset)

maxZoomLevel : float

此属性保存允许的最大摄像机缩放级别。

如果将最大级别设置为新值,该值低于现有的最小级别,则将最小级别调整为新最大值。如果当前的 zoomLevel 超出了新的范围,它也会进行调整。默认值为 500.0f

访问函数

floatmaxZoomLevel() const
voidsetMaxZoomLevel(float zoomLevel)

通知信号

voidmaxZoomLevelChanged(float zoomLevel)

另请参阅zoomLevelminZoomLevel.

minZoomLevel : float

该属性保存允许的最小相机缩放级别。

如果将最小级别设置为高于现有最大级别的新的值,则最大级别也会调整为新的最小级别。如果当前的 zoomLevel 超出了新界限,它也会相应调整。minZoomLevel 不能设置低于 1.0f。默认值为 10.0f

访问函数

floatminZoomLevel() const
voidsetMinZoomLevel(float zoomLevel)

通知信号

voidminZoomLevelChanged(float zoomLevel)

另请参阅zoomLevelmaxZoomLevel

[自 QtDataVisualization 1.2开始] target : QVector3D

该属性保存作为3D空间中的向量或顶点的相机目标。

默认值为 QVector3D(0.0, 0.0, 0.0)

有效的坐标值是 -1.0...1.0 之间,其中边缘值表示相应轴范围的边缘。任何超出此范围的值都会被夹持在边缘。

注意:对于条形图,Y坐标系被忽略,相机始终定位在水平背景上的一个点上。

此属性自 QtDataVisualization 1.2 引入。

访问函数

QVector3Dtarget() const
voidsetTarget(const QVector3D &target)

通知信号

voidtargetChanged(const QVector3D &target)

wrapXRotation : bool

该属性保存X-旋转中最小和最大限制的行为。

如果设置为 true,则相机X-旋转从最小到最大,然后从最大到最小进行了包裹。如果设置为 false,相机的X-旋转被限制在由最小和最大值确定的扇区中。默认设置为 true

访问函数

boolwrapXRotation() const
voidsetWrapXRotation(bool isEnabled)

通知信号

voidwrapXRotationChanged(bool isEnabled)

wrapYRotation : bool

该属性保存Y-旋转中最小和最大限制的行为。

如果设置为 true,则相机的Y-旋转从最小到最大,然后从最大到最小进行了包裹。如果设置为 false,相机的Y-旋转被限制在由最小和最大值确定的扇区中。默认设置为 true

访问函数

boolwrapYRotation() const
voidsetWrapYRotation(bool isEnabled)

通知信号

voidwrapYRotationChanged(bool isEnabled)

xRotation : float

该属性保存相机在目标点周围的X-旋转角度(以度为单位)。

访问函数

floatxRotation() const
voidsetXRotation(float rotation)

通知信号

voidxRotationChanged(float rotation)

yRotation : float

此属性表示相机围绕目标点旋转的Y轴角度(以度为单位)。

访问函数

floatyRotation() const
voidsetYRotation(float rotation)

通知信号

voidyRotationChanged(float rotation)

zoomLevel : float

此属性表示相机缩放级别(百分比)。

100.0f的默认值表示相机没有放大或缩小。该值由minZoomLevelmaxZoomLevel属性限制。

访问函数

floatzoomLevel() const
voidsetZoomLevel(float zoomLevel)

通知信号

voidzoomLevelChanged(float zoomLevel)

另请参阅 minZoomLevelmaxZoomLevel

成员函数文档

[显式] Q3DCamera::Q3DCamera(QObject *parent = nullptr)

构建一个新的3D相机,其位置设置为原点,向上方向面向Y轴,默认情况下朝向原点。可以提供可选的 parent参数,并将其传递给QObject构造函数。

[虚拟不可抛异常] Q3DCamera::~Q3DCamera()

销毁相机对象。

[覆盖虚拟] void Q3DCamera::copyValuesFrom(const Q3DObject &source)

重新实现:Q3DObject::copyValuesFrom(const Q3DObject &source).

从给定的源相机复制3D相机的属性。值从 source复制到本对象。

void Q3DCamera::setCameraPosition(float horizontal, float vertical, float zoom = 100.0f)

实用函数,用于设置相机旋转和距离。 horizontal vertical定义要使用的相机旋转。可选的 zoom参数可以用来自定义相机缩放级别(在minZoomLevelmaxZoomLevel属性定义的范围内)。

© 2024 The Qt Company Ltd. 本文档中的文档贡献的版权属于其各自的拥有者。本提供的文档根据GNU自由文档许可版本1.3的条款进行许可,该许可证由自由软件基金会发布。Qt和相应的标志是全球芬兰和其他国家的商标。所有其他商标都是其各自所有者的财产。