A 2d floating point arithmetic point-in-circle test.
Namespace:
ceometric.ComputationalGeometryAssembly: ceometric.ComputationalGeometry (in ceometric.ComputationalGeometry.dll) Version: 2.4.0.0 (2.4.0.0)
Syntax
C# |
---|
public static double InCircleOrdered( Point p1, Point p2, Point p3, Point point ) |
Visual Basic (Declaration) |
---|
Public Shared Function InCircleOrdered ( _ p1 As Point, _ p2 As Point, _ p3 As Point, _ point As Point _ ) As Double |
Visual C++ |
---|
public: static double InCircleOrdered( Point^ p1, Point^ p2, Point^ p3, Point^ point ) |
Parameters
- p1
- Type: ceometric.VectorGeometry..::.Point
A 2d point on the circumference of a circle.
- p2
- Type: ceometric.VectorGeometry..::.Point
A 2d point on the circumference of a circle.
- p3
- Type: ceometric.VectorGeometry..::.Point
A 2d point on the circumference of a circle.
- point
- Type: ceometric.VectorGeometry..::.Point
A 2d point.
Return Value
For a counterclockwise order of the points p1, p2 and p3 defining a circle, the predicate is- positive if point lies inside the circle.
- zero if point lies on the circumference of the circle.
- negative if point lies outside the circle.
Remarks
The points p1, p2 and p3 must be arranged in counterclockwise order, or the result of this test will be reversed.
This predicate is faster than the InCircleArbitrary(Point, Point, Point, Point)-predicate but requires the points to
have a defined orientation.
Due to floating point arithmetic, this predicate is not is not reliable for near-degenerate cases.