Parameters
- x
- X value. This is longitude when working with geographic coordinates.
- y
- Y value. This is latitude when working with geographic coordinates.
{
Coordinate2D v = new Coordinate2D(0, 1);
// v.Magnitude = 1
Coordinate2D other = new Coordinate2D(-1, 0);
double dotProduct = v.DotProduct(other);
// dotProduct = 0
Coordinate2D w = v + other;
// w = (-1, 1)
w += other;
// w = (-2, 1)
w -= other;
// w = (-1, 1)
w = v;
w.Rotate(Math.PI, other);
// w = (-2, -1)
w = other;
w.Scale(-4);
// w = (4, 0)
// w.Magnitude = 4
w.Move(-1, 4);
// w = (3, 4)
// w.Magnitude = 5
w.Move(-6, -1);
Tuple<double, double> components = w.QueryComponents();
// components = (-3, 3)
// w.Magnitude = 3 * Math.Sqrt(2)
Coordinate2D unitVector = w.GetUnitVector();
// w = (-Math.Sqrt(2) / 2, Math.Sqrt(2) / 2)
// w.Magnitude = 1
w.SetComponents(3, 4);
}
{
List<Coordinate2D> outerCoordinates = new List<Coordinate2D>();
outerCoordinates.Add(new Coordinate2D(10.0, 10.0));
outerCoordinates.Add(new Coordinate2D(10.0, 20.0));
outerCoordinates.Add(new Coordinate2D(20.0, 20.0));
outerCoordinates.Add(new Coordinate2D(20.0, 10.0));
// define the inner polygon as anti-clockwise
List<Coordinate2D> innerCoordinates = new List<Coordinate2D>();
innerCoordinates.Add(new Coordinate2D(13.0, 13.0));
innerCoordinates.Add(new Coordinate2D(17.0, 13.0));
innerCoordinates.Add(new Coordinate2D(17.0, 17.0));
innerCoordinates.Add(new Coordinate2D(13.0, 17.0));
PolygonBuilderEx pbEx = new PolygonBuilderEx(outerCoordinates);
Polygon donutEx = pbEx.ToGeometry() as Polygon;
double areaEx = donutEx.Area; // area = 100
pbEx.AddPart(innerCoordinates);
donutEx = pbEx.ToGeometry() as Polygon;
areaEx = donutEx.Area; // area = 84.0
areaEx = GeometryEngine.Instance.Area(donutEx); // area = 84.0
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)