A 2d exact arithmetic point-in-circle predicate.

Namespace:  ceometric.ComputationalGeometry
Assembly:  ceometric.ComputationalGeometry (in ceometric.ComputationalGeometry.dll) Version: 2.4.0.0 (2.4.0.0)

Syntax

C#
public static double InCircle2dExact(
	Point p1,
	Point p2,
	Point p3,
	Point point
)
Visual Basic (Declaration)
Public Shared Function InCircle2dExact ( _
	p1 As Point, _
	p2 As Point, _
	p3 As Point, _
	point As Point _
) As Double
Visual C++
public:
static double InCircle2dExact(
	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.
  • NaN if a correct answer is not possible due to floating point arithmetic errors.

Remarks

The points p1, p2 and p3 must be arranged in counterclockwise order, or the result of this predicate will be reversed.

See Also