main/src/georegression/geometry/UtilPlane3D_F64.java
public static void point3Dto2D(Point3D_F64 pointOnPlane ,
								   Vector3D_F64 axisX , Vector3D_F64 axisY,
								   Point3D_F64 A , Point2D_F64 output ) {

		double x = A.x - pointOnPlane.x;
		double y = A.y - pointOnPlane.y;
		double z = A.z - pointOnPlane.z;

		output.x = x*axisX.x + y*axisX.y + z*axisX.z;
		output.y = x*axisY.x + y*axisY.y + z*axisY.z;
	}
public static void point3Dto2D(Point3D_F64 pointOnPlane ,
								   Vector3D_F64 axisX , Vector3D_F64 axisY,
								   Point3D_F64 A , Point2D_F64 output ) {

		double x = A.x - pointOnPlane.x;
		double y = A.y - pointOnPlane.y;
		double z = A.z - pointOnPlane.z;

		output.x = x*axisX.x + y*axisX.y + z*axisX.z;
		output.y = x*axisY.x + y*axisY.y + z*axisY.z;
	}
public static void point3Dto2D ( Point3D_F64 pointOnPlane , Vector3D_F64 axisX , Vector3D_F64 axisY , Point3D_F64 A , Point2D_F64 output ) { double x = A . x - pointOnPlane . x ; double y = A . y - pointOnPlane . y ; double z = A . z - pointOnPlane . z ; output . x = x * axisX . x + y * axisX . y + z * axisX . z ; output . y = x * axisY . x + y * axisY . y + z * axisY . z ; }
Projects the point onto the 2D coordinate system specified by the provided x-axis. If the chose of
x-axis is arbitrary {@link UtilVector3D_F64#perpendicularCanonical(Vector3D_F64, Vector3D_F64)} is recommended
as a way to select

@param pointOnPlane (Input) A point on the plane.
@param axisX (Input) Vector which defines the x-axis
@param axisY (Input) Vector which defines the y-axis
@param A (Input) 3D vector you wish to project. MUST BE ON THE PlANE
@param output (Output) 2D projected vector.
Projects the point onto the 2D coordinate system specified by the provided x - axis . If the chose of x - axis is arbitrary { @link UtilVector3D_F64#perpendicularCanonical ( Vector3D_F64 Vector3D_F64 ) } is recommended as a way to select