Q3DCamera 类
3D空间中摄像机的表示。 更多...
头文件 | #include <Q3DCamera> |
CMake | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake | QT += datavisualization |
自 | QtDataVisualization 1.0 |
由以下实例化 | Camera3D |
继承 | Q3DObject |
公共类型
枚举 | CameraPreset { CameraPresetNone, CameraPresetFrontLow, CameraPresetFront, CameraPresetFrontHigh, CameraPresetLeftLow, …, CameraPresetDirectlyBelow } |
属性
|
|
公共函数
Q3DCamera(QObject *parent = nullptr) | |
虚拟 | ~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 |
重写的公共函数
virtual void | copyValuesFrom(const Q3DObject &source) override |
信号
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) |
成员类型文档
enum Q3DCamera::CameraPreset
摄像机的预定位置。
常量 | 值 | 描述 |
---|---|---|
Q3DCamera::CameraPresetNone | -1 | 用于表示未设置预定或场景已经自由旋转。 |
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 from CameraPresetFrontBelow onward these only work for graphs including negative values. They act as Preset...Low for positive-only values. |
Q3DCamera::CameraPresetLeftBelow | 20 | |
Q3DCamera::CameraPresetRightBelow | 21 | |
Q3DCamera::CameraPresetBehindBelow | 22 | |
Q3DCamera::CameraPresetDirectlyBelow | 23 | 对于仅包含正数的条形图,相当于 CameraPresetFrontLow。 |
属性文档
cameraPreset : CameraPreset
此属性保存当前活动的摄像机预定。
如果没有设置 CameraPreset 值,则默认使用 CameraPresetNone。
访问函数
Q3DCamera::CameraPreset | cameraPreset() const |
void | setCameraPreset(Q3DCamera::CameraPreset preset) |
通知信号
void | cameraPresetChanged(Q3DCamera::CameraPreset preset) |
maxZoomLevel : float
此属性保存允许的最大摄像机缩放级别。
如果将最大级别设置为新值,该值低于现有的最小级别,则将最小级别调整为新最大值。如果当前的 zoomLevel 超出了新的范围,它也会进行调整。默认值为 500.0f
。
访问函数
float | maxZoomLevel() const |
void | setMaxZoomLevel(float zoomLevel) |
通知信号
void | maxZoomLevelChanged(float zoomLevel) |
另请参阅zoomLevel 和 minZoomLevel.
minZoomLevel : float
该属性保存允许的最小相机缩放级别。
如果将最小级别设置为高于现有最大级别的新的值,则最大级别也会调整为新的最小级别。如果当前的 zoomLevel 超出了新界限,它也会相应调整。minZoomLevel 不能设置低于 1.0f
。默认值为 10.0f
。
访问函数
float | minZoomLevel() const |
void | setMinZoomLevel(float zoomLevel) |
通知信号
void | minZoomLevelChanged(float zoomLevel) |
另请参阅zoomLevel 和 maxZoomLevel。
[自 QtDataVisualization 1.2开始]
target : QVector3D
该属性保存作为3D空间中的向量或顶点的相机目标。
默认值为 QVector3D(0.0, 0.0, 0.0)
。
有效的坐标值是 -1.0...1.0
之间,其中边缘值表示相应轴范围的边缘。任何超出此范围的值都会被夹持在边缘。
注意:对于条形图,Y坐标系被忽略,相机始终定位在水平背景上的一个点上。
此属性自 QtDataVisualization 1.2 引入。
访问函数
QVector3D | target() const |
void | setTarget(const QVector3D &target) |
通知信号
void | targetChanged(const QVector3D &target) |
wrapXRotation : bool
该属性保存X-旋转中最小和最大限制的行为。
如果设置为 true
,则相机X-旋转从最小到最大,然后从最大到最小进行了包裹。如果设置为 false
,相机的X-旋转被限制在由最小和最大值确定的扇区中。默认设置为 true
。
访问函数
bool | wrapXRotation() const |
void | setWrapXRotation(bool isEnabled) |
通知信号
void | wrapXRotationChanged(bool isEnabled) |
wrapYRotation : bool
该属性保存Y-旋转中最小和最大限制的行为。
如果设置为 true
,则相机的Y-旋转从最小到最大,然后从最大到最小进行了包裹。如果设置为 false
,相机的Y-旋转被限制在由最小和最大值确定的扇区中。默认设置为 true
。
访问函数
bool | wrapYRotation() const |
void | setWrapYRotation(bool isEnabled) |
通知信号
void | wrapYRotationChanged(bool isEnabled) |
xRotation : float
该属性保存相机在目标点周围的X-旋转角度(以度为单位)。
访问函数
float | xRotation() const |
void | setXRotation(float rotation) |
通知信号
void | xRotationChanged(float rotation) |
yRotation : float
此属性表示相机围绕目标点旋转的Y轴角度(以度为单位)。
访问函数
float | yRotation() const |
void | setYRotation(float rotation) |
通知信号
void | yRotationChanged(float rotation) |
zoomLevel : float
此属性表示相机缩放级别(百分比)。
100.0f
的默认值表示相机没有放大或缩小。该值由minZoomLevel和maxZoomLevel属性限制。
访问函数
float | zoomLevel() const |
void | setZoomLevel(float zoomLevel) |
通知信号
void | zoomLevelChanged(float zoomLevel) |
另请参阅 minZoomLevel和maxZoomLevel。
成员函数文档
[显式]
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参数可以用来自定义相机缩放级别(在minZoomLevel和maxZoomLevel属性定义的范围内)。
© 2024 The Qt Company Ltd. 本文档中的文档贡献的版权属于其各自的拥有者。本提供的文档根据GNU自由文档许可版本1.3的条款进行许可,该许可证由自由软件基金会发布。Qt和相应的标志是全球芬兰和其他国家的商标。所有其他商标都是其各自所有者的财产。