public static Matrix4d createPerspective(double fov, double aspect, double near, double far) {
    """
	Creates a perspective projection matrix with the given (x) FOV, aspect, near and far planes
	
	@param fov The field of view in the x direction
	@param aspect The aspect ratio, usually width/height
	@param near The near plane, cannot be 0
	@param far the far plane, far cannot equal near
	@return A perspective projection matrix built from the given values
    """
        final double scale = 1 / TrigMath.tan(fov * (double) TrigMath.HALF_DEG_TO_RAD);
        return new Matrix4d(
                scale / aspect, 0, 0, 0,
                0, scale, 0, 0,
                0, 0, (far + near) / (near - far), 2 * far * near / (near - far),
                0, 0, -1, 0);
    }
public static Matrix4d createPerspective(double fov, double aspect, double near, double far) {
        final double scale = 1 / TrigMath.tan(fov * (double) TrigMath.HALF_DEG_TO_RAD);
        return new Matrix4d(
                scale / aspect, 0, 0, 0,
                0, scale, 0, 0,
                0, 0, (far + near) / (near - far), 2 * far * near / (near - far),
                0, 0, -1, 0);
    }
public static Matrix4d createPerspective ( double fov , double aspect , double near , double far ) { final double scale = 1 / TrigMath . tan ( fov * ( double ) TrigMath . HALF_DEG_TO_RAD ) ; return new Matrix4d ( scale / aspect , 0 , 0 , 0 , 0 , scale , 0 , 0 , 0 , 0 , ( far + near ) / ( near - far ) , 2 * far * near / ( near - far ) , 0 , 0 , - 1 , 0 ) ; }
Creates a perspective projection matrix with the given (x) FOV, aspect, near and far planes

@param fov The field of view in the x direction
@param aspect The aspect ratio, usually width/height
@param near The near plane, cannot be 0
@param far the far plane, far cannot equal near
@return A perspective projection matrix built from the given values
Creates a perspective projection matrix with the given ( x ) FOV aspect near and far planes