Module  javafx.graphics
软件包  javafx.scene

Class Camera

  • All Implemented Interfaces:
    StyleableEventTarget
    已知直接子类:
    ParallelCameraPerspectiveCamera


    public abstract class Camera
    extends Node
    用于渲染场景的相机的基类。 相机定义了场景坐标空间到窗口的映射。 相机是一个具有两个具体子类的抽象类: ParallelCameraPerspectiveCamera

    默认摄像机位于场景中,使其在场景坐标空间中的投影平面处于Z = 0,并且在正Z方向上观察屏幕。 从相机到投影平面的Z距离width height的场景的widthheight及其fieldOfView

    本相机的nearClipfarClip在眼睛坐标空间中指定。 该空间被定义为使得眼睛处于其原点并且投影平面在正Z方向上在眼前方的一个单位。

    以下伪代码是用于计算场景坐标空间中近距离和远距离剪辑距离的数学:

      final double tanOfHalfFOV = Math.tan(Math.toRadians(FOV) / 2.0);
     final double halfHeight = HEIGHT / 2;
     final double focalLenght = halfHeight / tanOfHalfFOV;
     final double eyePositionZ = -1.0 * focalLenght;
     final double nearClipDistance = focalLenght * NEAR + eyePositionZ;
     final double farClipDistance = focalLenght * FAR + eyePositionZ; 

    其中FOVfieldOfView度, NEARnearClip眼空间指定,并且FARfarClip在眼空间中指定。

    注意:由于ParallelCamera类没有fieldOfView属性,因此使用30度垂直视野。

    注意:对于PerspectiveCamera,其中fixedEyeAtCameraZero属性为true,场景坐标空间被归一化以适应视锥结构(详见PerspectiveCamera )。 在此模式下,眼睛坐标空间与该Camera节点的局部坐标空间相同。 因此,不使用上述转化公式。

    应用程序不应该直接扩展Camera类。 否则可能导致抛出UnsupportedOperationException异常。

    从以下版本开始:
    JavaFX 2.0
    • Property Detail

      • nearClip

        public final DoubleProperty nearClipProperty
        指定眼睛坐标空间中该Camera的近剪取平面眼睛的距离。 没有绘制比nearClip更接近眼睛的物体。 nearClip被指定为大于零的值。 小于或等于零的值被视为非常小的正数。
        Default value:
        0.1
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getNearClip()setNearClip(double)
      • farClip

        public final DoubleProperty farClipProperty
        指定眼睛坐标空间中该Camera的远剪切平面眼睛的距离。 远离眼睛的物体比farClip没有绘制。 farClip被指定为大于nearClip的值。 小于或等于nearClip值被视为nearClip加上非常小的正数。
        Default value:
        100.0
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getFarClip()setFarClip(double)
    • 构造方法详细信息

      • Camera

        protected Camera​()
    • 方法详细信息

      • setNearClip

        public final void setNearClip​(double value)
        设置属性nearClip的值。
        Property description:
        指定眼睛坐标空间中该Camera的近剪取平面眼睛的距离。 没有绘制比nearClip更接近眼睛的物体。 nearClip被指定为大于零的值。 小于或等于零的值被视为非常小的正数。
        Default value:
        0.1
        从以下版本开始:
        JavaFX 8.0
      • getNearClip

        public final double getNearClip​()
        获取nearClip附近的属性的值。
        Property description:
        指定眼睛坐标空间中该Camera的近剪裁平面眼睛的距离。 没有画出比nearClip更接近眼睛的物体。 nearClip被指定为大于零的值。 小于或等于零的值被视为非常小的正数。
        Default value:
        0.1
        从以下版本开始:
        JavaFX 8.0
      • nearClipProperty

        public final DoubleProperty nearClipProperty​()
        指定眼睛坐标空间中该Camera的近剪取平面眼睛的距离。 没有绘制比nearClip更接近眼睛的物体。 nearClip被指定为大于零的值。 小于或等于零的值被视为非常小的正数。
        Default value:
        0.1
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getNearClip()setNearClip(double)
      • setFarClip

        public final void setFarClip​(double value)
        设置属性farClip的值。
        Property description:
        指定眼睛坐标空间中该Camera的远剪切平面眼睛的距离。 远离眼睛的物体比farClip没有绘制。 farClip被指定为大于nearClip的值。 小于或等于nearClip值被视为nearClip加上非常小的正数。
        Default value:
        100.0
        从以下版本开始:
        JavaFX 8.0
      • getFarClip

        public final double getFarClip​()
        获取属性farClip的值。
        Property description:
        指定眼睛坐标空间中该Camera的远剪切平面的距离。 远离眼睛的物体比farClip没有绘制。 farClip被指定为大于nearClip的值。 小于或等于nearClip值被视为nearClip加上非常小的正数。
        Default value:
        100.0
        从以下版本开始:
        JavaFX 8.0
      • farClipProperty

        public final DoubleProperty farClipProperty​()
        指定眼睛坐标空间中该Camera的远剪取平面的距离。 远离眼睛的物体比farClip没有绘制。 farClip被指定为大于nearClip的值。 小于或等于nearClip值被视为nearClip加上非常小的正数。
        Default value:
        100.0
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getFarClip()setFarClip(double)