在 3D 空间中的摄像头表示。 更多...
头: | #include <Q3DCamera> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake: | QT += datavisualization |
Since: | QtDataVisualization 1.0 |
实例化: | 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 ) |
Q3DCamera represents a basic orbit around centerpoint 3D camera that is used when rendering the data visualization. The class offers simple methods for rotating the camera around the origin and setting zoom level.
用于摄像头的预定义位置。
常量 | 值 | 描述 |
---|---|---|
Q3DCamera::CameraPresetNone
|
-1
|
Used to indicate a preset has not been set, or the scene has been rotated freely. |
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 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
|
Acts as CameraPresetFrontLow for positive-only bars. |
此特性保持当前活动摄像头的预置。
若无 CameraPreset 值被设置, CameraPresetNone 被使用默认情况下。
访问函数:
Q3DCamera::CameraPreset | cameraPreset () const |
void | setCameraPreset (Q3DCamera::CameraPreset preset ) |
通知程序信号:
void | cameraPresetChanged (Q3DCamera::CameraPreset preset ) |
此特性保持允许的最大摄像头缩放级别。
If the maximum level is set to a new value that is lower than the existing minimum level, the minimum level is adjusted to the new maximum as well. If the current
zoomLevel
is outside the new bounds, it is adjusted as well. Defaults to
500.0f
.
访问函数:
float | maxZoomLevel () const |
void | setMaxZoomLevel (float zoomLevel ) |
通知程序信号:
void | maxZoomLevelChanged (float zoomLevel ) |
另请参阅 zoomLevel and minZoomLevel .
This property holds the minimum allowed camera zoom level.
If the minimum level is set to a new value that is higher than the existing maximum level, the maximum level is adjusted to the new minimum as well. If the current
zoomLevel
is outside the new bounds, it is adjusted as well. The minZoomLevel cannot be set below
1.0f
。默认为
10.0f
.
访问函数:
float | minZoomLevel () const |
void | setMinZoomLevel (float zoomLevel ) |
通知程序信号:
void | minZoomLevelChanged (float zoomLevel ) |
另请参阅 zoomLevel and maxZoomLevel .
[since QtDataVisualization 1.2]
target
:
QVector3D
This property holds the camera target as a vector or vertex in the 3D space.
默认为
QVector3D(0.0, 0.0, 0.0)
.
Valid coordinate values are between
-1.0...1.0
, where the edge values indicate the edges of the corresponding axis range. Any values outside this range are clamped to the edge.
注意: For bar graphs, the Y-coordinate is ignored and camera always targets a point on the horizontal background.
该特性在 QtDataVisualization 1.2 引入。
访问函数:
QVector3D | target () const |
void | setTarget (const QVector3D & target ) |
通知程序信号:
void | targetChanged (const QVector3D & target ) |
This property holds the behavior of the minimum and maximum limits in the X-rotation.
若设为
true
, the X-rotation of the camera is wrapped from minimum to maximum and from maximum to minimum. If set to
false
, the X-rotation of the camera is limited to the sector determined by the minimum and maximum values. Set to
true
在默认情况下。
访问函数:
bool | wrapXRotation () const |
void | setWrapXRotation (bool isEnabled ) |
通知程序信号:
void | wrapXRotationChanged (bool isEnabled ) |
This property holds the behavior of the minimum and maximum limits in the Y-rotation.
若
true
, the Y-rotation of the camera is wrapped from minimum to maximum and from maximum to minimum. If
false
, the Y-rotation of the camera is limited to the sector determined by the minimum and maximum values. Set to
true
在默认情况下。
访问函数:
bool | wrapYRotation () const |
void | setWrapYRotation (bool isEnabled ) |
通知程序信号:
void | wrapYRotationChanged (bool isEnabled ) |
This property holds the X-rotation angle of the camera around the target point in degrees.
访问函数:
float | xRotation () const |
void | setXRotation (float rotation ) |
通知程序信号:
void | xRotationChanged (float rotation ) |
This property holds the Y-rotation angle of the camera around the target point in degrees.
访问函数:
float | yRotation () const |
void | setYRotation (float rotation ) |
通知程序信号:
void | yRotationChanged (float rotation ) |
此特性保持摄像头的缩放级别按百分比。
默认值
100.0f
意味着摄像头没有设置放大 (或缩小)。值被限制通过
minZoomLevel
and
maxZoomLevel
特性。
访问函数:
float | zoomLevel () const |
void | setZoomLevel (float zoomLevel ) |
通知程序信号:
void | zoomLevelChanged (float zoomLevel ) |
另请参阅 minZoomLevel and maxZoomLevel .
[explicit]
Q3DCamera::
Q3DCamera
(
QObject
*
parent
= nullptr)
Constructs a new 3D camera with position set to origin, up direction facing towards the Y-axis and looking at origin by default. An optional parent 参数可以给出,然后会被传递给 QObject 构造函数。
[虚拟]
Q3DCamera::
~Q3DCamera
()
销毁摄像头对象。
[override virtual]
void
Q3DCamera::
copyValuesFrom
(const
Q3DObject
&
source
)
重实现: Q3DObject::copyValuesFrom (const Q3DObject &source).
Copies the 3D camera's properties from the given source camera. Values are copied from the source 到此对象。
Utility function that sets the camera rotations and distance. horizontal and vertical define the camera rotations to be used. Optional zoom parameter can be given to set the zoom percentage of the camera within the bounds defined by minZoomLevel and maxZoomLevel 特性。