Back to Aurora Vision Library Lite website
You are here: Start » Geometry 2D » Geometry 2D Angle Metrics » AngleBetweenThreePoints
AngleBetweenThreePoints
Header: | AVL.h |
---|---|
Namespace: | avl |
Measures the angle defined by three consecutive points.
Syntax
void avl::AngleBetweenThreePoints ( const avl::Point2D& inPoint1, const avl::Point2D& inPoint2, const avl::Point2D& inPoint3, avl::RotationDirection::Type inRotationDirection, atl::Optional<float&> outAbsoluteAngle = atl::NIL, atl::Optional<float&> outDirectedAngle = atl::NIL, atl::Optional<avl::Arc2D&> outArc = atl::NIL )
Parameters
Name | Type | Default | Description | |
---|---|---|---|---|
inPoint1 | const Point2D& | A point on one arm of an angle | ||
inPoint2 | const Point2D& | The middle point | ||
inPoint3 | const Point2D& | A point on another arm of the angle | ||
inRotationDirection | RotationDirection::Type | Chooses one of two ways of measuring the angle | ||
outAbsoluteAngle | Optional<float&> | NIL | Angle value used for measurements <0; 360> | |
outDirectedAngle | Optional<float&> | NIL | Angle value used for clockwise transformations <-360; 360> | |
outArc | Optional<Arc2D&> | NIL | Angle visualization object |
Optional Outputs
The computation of following outputs can be switched off by passing value atl::NIL
to these parameters: outAbsoluteAngle, outDirectedAngle, outArc.
Read more about Optional Outputs.
Description
Note that because of inaccuracies of floating-point arithmetic, some geometric operations (including this one) may lead to unpredictable results for degenerated cases. In this filter such a case occurs when some two of the input points are almost equal.