﻿CoordinateSystem Constructor (Point, Point, Point, Point, Point, Point, Point, Point)
Constructs a 3d coordinate system defining the coordinate transformation given by four non-coplanar points 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 CoordinateSystem(
Point u1,
Point u2,
Point u3,
Point u4,
Point v1,
Point v2,
Point v3,
Point v4
)```
Visual Basic (Declaration)
```Public Sub New ( _
u1 As Point, _
u2 As Point, _
u3 As Point, _
u4 As Point, _
v1 As Point, _
v2 As Point, _
v3 As Point, _
v4 As Point _
)```
Visual C++
```public:
CoordinateSystem(
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.