Computes the coordinate transformation defined by four non-coplanar points given in two coordinate systems.

Namespace:  ceometric.VectorGeometry
Assembly:  ceometric.VectorGeometry (in ceometric.VectorGeometry.dll) Version: 1.8.0.0 (1.8.0.0)

Syntax

C#
public static CoordinateSystem Align(
	Point u1,
	Point u2,
	Point u3,
	Point u4,
	Point v1,
	Point v2,
	Point v3,
	Point v4
)
Visual Basic (Declaration)
Public Shared Function Align ( _
	u1 As Point, _
	u2 As Point, _
	u3 As Point, _
	u4 As Point, _
	v1 As Point, _
	v2 As Point, _
	v3 As Point, _
	v4 As Point _
) As CoordinateSystem
Visual C++
public:
static CoordinateSystem^ Align(
	Point^ u1, 
	Point^ u2, 
	Point^ u3, 
	Point^ u4, 
	Point^ v1, 
	Point^ v2, 
	Point^ v3, 
	Point^ v4
)

Parameters

u1
Type: ceometric.VectorGeometry..::.Point
The first point in the first coordinate system.
u2
Type: ceometric.VectorGeometry..::.Point
The second point in the first coordinate system.
u3
Type: ceometric.VectorGeometry..::.Point
The third point in the first coordinate system.
u4
Type: ceometric.VectorGeometry..::.Point
The fourth point in the first coordinate system.
v1
Type: ceometric.VectorGeometry..::.Point
The first point in the second coordinate system.
v2
Type: ceometric.VectorGeometry..::.Point
The second point in the second coordinate system.
v3
Type: ceometric.VectorGeometry..::.Point
The third point in the second coordinate system.
v4
Type: ceometric.VectorGeometry..::.Point
The fourth point in the second coordinate system.

Return Value

Returns a coordinate system cs so that a coordinate transformation from the global coordinate system Global()()() to the system cs maps the point u1 on v1, u2 on v2, u3 on v3 and u4 on v4.

Examples

CopyC#
Point u1 = new Point(0, 0, 0);
Point u2 = new Point(1, 0, 0);
Point u3 = new Point(0, 1, 0);
Point u4 = new Point(0, 0, 1);

Point v1 = new Point(0, 0, 1); // u1 is aligned with v1
Point v2 = new Point(1, 0, 1); // u2 is aligned with v2
Point v3 = new Point(0, 1, 1); // u3 is aligned with v3
Point v4 = new Point(0, 0, 2); // u4 is aligned with v4

// Get the transformation u->v
// In this case, the coordinate transformation is just a translation by (0,0,1)
CoordinateSystem ct = new CoordinateSystem(u1, u2, u3, u4, v1, v2, v3, v4);

// coordinates of a point p in the system of u:
Point p = new Point(0, 0, 1);
// coordinates of p in the system of v are (0,0,0):
p = p.TransformCoordinates(CoordinateSystem.Global(), ct);

Exceptions

ExceptionCondition
System..::.ArithmeticExceptionThe points in one or both systems are coplanar.

See Also