Q3DCamera 类

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

头: #include <Q3DCamera>
qmake: QT += datavisualization
Since: QtDataVisualization 1.0
实例化: Camera3D
继承: Q3DObject

该类在 QtDataVisualization 1.0 引入。

公共类型

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.

成员类型文档编制

enum Q3DCamera:: CameraPreset

用于摄像头的预定义位置。

常量 描述
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 : CameraPreset

此特性保持当前活动摄像头的预置。

若无 CameraPreset 值被设置, CameraPresetNone 被使用默认情况下。

访问函数:

Q3DCamera::CameraPreset cameraPreset () const
void setCameraPreset (Q3DCamera::CameraPreset preset )

通知程序信号:

void cameraPresetChanged (Q3DCamera::CameraPreset preset )

maxZoomLevel : float

此特性保持允许的最大摄像头缩放级别。

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 .

minZoomLevel : float

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 .

target : QVector3D

This property holds the camera target as a 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 )

wrapXRotation : bool

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 )

wrapYRotation : bool

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 )

xRotation : float

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 )

yRotation : float

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 )

zoomLevel : float

此特性保持摄像头的缩放级别按百分比。

默认值 100.0f 意味着摄像头没有设置放大 (或缩小)。值被限制通过 minZoomLevel and maxZoomLevel 特性。

访问函数:

float zoomLevel () const
void setZoomLevel (float zoomLevel )

通知程序信号:

void zoomLevelChanged (float zoomLevel )

另请参阅 minZoomLevel and maxZoomLevel .

成员函数文档编制

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 到此对象。

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

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 特性。