Q3DCamera Class
相机在三维空间中的表示。更多内容...
| 标题: | #include <Q3DCamera> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
| qmake: | QT += datavisualization |
| 自: | QtDataVisualization 1.0 |
| 在 QML 中: | Camera3D |
| 继承自: | Q3DObject |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议不要在新代码中使用它。
公共类型
| enum | CameraPreset { CameraPresetNone, CameraPresetFrontLow, CameraPresetFront, CameraPresetFrontHigh, CameraPresetLeftLow, …, CameraPresetDirectlyBelow } |
属性
|
|
公共函数
| Q3DCamera(QObject *parent = nullptr) | |
| virtual | ~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 | 在 Q3DBars 中,从 CameraPresetFrontBelow 开始,这些设置仅适用于包含负值的图表。对于仅包含正值的图表,它们的作用与 Preset...Low 相同。 |
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 。
[since QtDataVisualization 1.2] target : QVector3D
该属性将摄像机目标作为三维空间中的向量或顶点存储。
默认值为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 。
成员函数文档
[explicit] Q3DCamera::Q3DCamera(QObject *parent = nullptr)
创建一个新的 3D 摄像机,其位置默认为原点,向上方向朝向 Y 轴,且默认视线指向原点。可以提供可选的 `parent ` 参数,该参数随后将传递给 `QObject ` 构造函数。
[virtual noexcept] Q3DCamera::~Q3DCamera()
销毁相机对象。
[override virtual] 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 属性定义的范围内设置相机的缩放比例。
© 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.