interArcArc()

Synopsis

This function finds the intersection points of two arcs described by their center points and radii. The onRight? input is used to determine which of the as many as two possible points to return. If True , it returns the point to the right of a line from the first arc to the second arc and in the plane of the two arcs. If there are no intersections, the function returns NoValue .

Syntax

interArcArc ( p1 As Point, _
              r1 As Number, _
              p2 As Point, _
              r2 As Number, _
              onRight? As Boolean, _
              Optional normal As Vector = Vector(0, 0, 1) ) As Any 
Argument Type Description
p1 Point Center point of the first arc.
r1 Number Radius of the first arc.
p2 Point Center point of the second arc.
r2 Number Radius of the second arc.
onRight? Boolean This value selects which intersection point to return if more than one.
normal Vector Optional; the normal vector of both arcs; default is the local Z axis (Vector(0, 0, 1)).

Example 1

Intent >interArcArc(point(0,0,0), 2, point(1,0,0), 2, True) 
--> Point_(0.5, -1.936, 0.0, WorldFrame()) 
The onRight? argument was used to pick one of the two intersections.

Example 2

Intent >interArcArc(point(0,0,0), 2, point(4,0,0), 2, True) 
--> Point_(2.0, 0.0, 0.0, WorldFrame()) 
There was only one intersection in this case.

Example 3

Intent >interArcArc(point(0,0,0), 2, point(5,0,0), 2, True) 
--> NoValue 
There are no intersection points of the two arcs in this case.

Example 4

Intent >interArcArc(point(0,0,0), 2, point(0,0,0), 2, True) 
--> Point_(0.0, 0.0, 0.0, WorldFrame()) 
This is a degenerate case where the arcs are identical.