Module  javafx.graphics
软件包  javafx.scene

Class PerspectiveCamera

  • All Implemented Interfaces:
    StyleableEventTarget


    public class PerspectiveCamera
    extends Camera
    指定用于渲染场景的透视相机。

    该相机定义了透视投影的观看体积; 一个截断的右金字塔。 fieldOfView值可用于更改观看音量。 默认情况下,本相机位于场景的中心,并沿z轴正方向。 由本相机定义的坐标系起源于面板的左上角,Y轴指向下方,Z轴指向观察者(进入屏幕)。 如果将PerspectiveCamera节点添加到场景图中,则相机的变换位置和方向将定义相机的位置和相机所在的方向。

    在默认摄像机中,如果固定的EyeAtCameraZero为假,则在Z中调整眼睛位置的Z值,使得使用指定的fieldOfView生成的投影矩阵将在与设备无关的像素中产生Z = 0(投影平面)的单位,匹配ParallelCamera的。 当场景调整大小时,投影平面(Z = 0)场景中的物体将保持相同的大小,但是场景的内容更多或更少是可见的。

    如果fixedEyeAtCameraZero为真,则眼睛位置固定在摄像机的本地坐标中的(0,0,0)。 使用指定的fieldOfView生成投影矩阵,并将投影体积映射到视口(窗口),使其在投影平面上的多个或更少的与设备无关的像素上展开。 当场景调整大小时,场景中的对象将按比例缩小或增长,但内容的可见部分不变。

    如果要转换(移动)相机,我们建议将fixedEyeAtCameraZero设置为true。 当固定EyeAtCameraZero设置为false时转换相机可能会导致不直观的结果。

    请注意,这是一个条件功能。 有关详细信息,请参阅ConditionalFeature.SCENE3D

    从以下版本开始:
    JavaFX 2.0
    • 构造方法详细信息

      • PerspectiveCamera

        public PerspectiveCamera​()
        创建PerspectiveCamera的空实例。
      • PerspectiveCamera

        public PerspectiveCamera​(boolean fixedEyeAtCameraZero)
        用指定的fixedEyeAtCameraZero标志构建PerspectiveCamera。

        在默认摄像机中,在固定的EyeAtCameraZero为假的情况下,在Z中调整眼睛位置的Z值,使得使用指定的fieldOfView生成的投影矩阵将在与设备无关的像素中产生Z = 0(投影平面)匹配ParallelCamera的。 当场景调整大小时,投影平面(Z = 0)场景中的物体将保持相同的大小,但是场景的内容更多或更少是可见的。

        如果fixedEyeAtCameraZero为真,则眼睛位置固定在摄像机的本地坐标中的(0,0,0)。 使用指定的fieldOfView生成投影矩阵,并将投影体积映射到视口(窗口),使其在投影平面上的多个或更少的与设备无关的像素上展开。 当场景调整大小时,场景中的对象将按比例缩小或增长,但内容的可见部分不变。

        如果要转换(移动)相机,我们建议将fixedEyeAtCameraZero设置为true。 当固定EyeAtCameraZero设置为false时转换相机可能会导致不直观的结果。

        参数
        fixedEyeAtCameraZero - 如果眼睛位置固定在摄像机的本地坐标中的(0,0,0), fixedEyeAtCameraZero真。
        从以下版本开始:
        JavaFX 8.0
    • 方法详细信息

      • setFieldOfView

        public final void setFieldOfView​(double value)
        设置属性fieldOfView的值。
        Property description:
        指定相机投影的视野角度,以度为单位。
        Default value:
        30.0
      • getFieldOfView

        public final double getFieldOfView​()
        获取属性fieldOfView的值。
        Property description:
        指定相机投影的视野角度,以度为单位。
        Default value:
        30.0
      • setVerticalFieldOfView

        public final void setVerticalFieldOfView​(boolean value)
        设置属性verticalFieldOfView的值。
        Property description:
        定义fieldOfView属性是否适用于投影的垂直维度。 如果是假的,则fieldOfView将适用于投影的水平维度。
        Default value:
        真正
        从以下版本开始:
        JavaFX 8.0
      • isVerticalFieldOfView

        public final boolean isVerticalFieldOfView​()
        获取属性verticalFieldOfView的值。
        Property description:
        定义fieldOfView属性是否适用于投影的垂直维度。 如果为假,则fieldOfView将适用于投影的水平尺寸。
        Default value:
        真正
        从以下版本开始:
        JavaFX 8.0
      • verticalFieldOfViewProperty

        public final BooleanProperty verticalFieldOfViewProperty​()
        定义fieldOfView属性是否适用于投影的垂直维度。 如果为假,则fieldOfView将适用于投影的水平维度。
        Default value:
        真正
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        isVerticalFieldOfView()setVerticalFieldOfView(boolean)
      • isFixedEyeAtCameraZero

        public final boolean isFixedEyeAtCameraZero​()
        返回一个标志,指示本相机是否在相机原点使用固定的眼睛位置。 如果fixedEyeAtCameraZerotrue ,则在摄像机的本地坐标中,眼睛位置固定为(0,0,0)。 这个属性是不可变的。
        结果
        指示该相机是否在相机原点处使用固定眼睛位置的标志
        从以下版本开始:
        JavaFX 8.0