Arc2F

A structure used for describing and manipulating 2D circular arcs
Does this come out?

Public Fields

Center
Point2F
The center of the arc.
Direction
CamBam.Geom.RotationDirection
Direction of rotation
P1
Point2F
First arc point.
P2
Point2F
Second arc point.

Properties

Bulge
readonly

System.Double
Bulge is used in DXF polylines.
It is defined as Tan of 1/4 the sweep angle
Returns:

Midpoint
readonly

Point2F
 

Radius
readonly

System.Double
The radius of the arc.
NOTE: Calculated from distance from Center to P1 and P2

Start
readonly

System.Double
The start angle in degrees
NOTE: Calculated from Center and P1

Sweep
readonly

System.Double
The sweep angle in degrees
NOTE: Calculated from Center, P1 and P2

Undefined
static,readonly

Arc2F
 

Methods

_CalcPolyArcSweep
static
Double _CalcPolyArcSweep (Point2F p1, Point2F p2, Point2F pmid)
AngleWithinArc
Boolean AngleWithinArc (Double angle, Double tolerance)
Checks that an angle lies within the arc
Parameters:
angle: angle to test in degrees
Returns: true if the angle lies within the arc
ArcIntersect
Line2F ArcIntersect (Arc2F arc, Double tolerance)
Finds the intersection points between two arcs.
Parameters:
arc: Arc to test
Returns: A 2D Line where the end points are the points of intersection. If the arcs do not intersect Line2F.Undefined is returned.
ArcIntersect
Line2F ArcIntersect (Arc2F arc)
CircleIntersect
Line2F CircleIntersect (Circle2F circle, Double tolerance)
Finds the intersection points between the arc and a circle.
Parameters:
circle: The circle to test.
Returns: A 2D Line where the end points are the points of intersection. If the circle does not intersect Line2F.Undefined is returned.
CircleIntersect
Line2F CircleIntersect (Circle2F circle)
DistanceToPoint
Double DistanceToPoint (Point2F p)
Calculates the shortest distance from a point to the arc
Parameters:
p: The point to test
Returns: The scalar distance to the arc
GetArcFromMidpoint
static
Arc2F GetArcFromMidpoint (Point2F p1, Point2F p2, Point2F pmid)
GetBulgeDirectionLeftRight
ArcBulgeDirection GetBulgeDirectionLeftRight ()
GetBulgeDirectionUpDown
ArcBulgeDirection GetBulgeDirectionUpDown ()
GetExtrema
Void GetExtrema (Point2F& min, Point2F& max)
GetPerimeter
Double GetPerimeter ()
Invert
Void Invert ()
IsInside
Boolean IsInside (Rect2F rect)
LineIntersect
Line2F LineIntersect (Line2F line, Double tolerance)
Finds the intersection points between the arc and a line.
Parameters:
line: The line to test
Returns: A 2D Line where the end points are the points of intersection. If the line does not intersect the arc, returns Line2F.Undefined.
NearestPoint
Point2F NearestPoint (Point2F p, Double& distance)
NearestPoint
Point2F NearestPoint (Line2F line, Double& distance, Double tolerance)
NearestPoint
Point2F NearestPoint (Arc2F arc, Double& distance, Double tolerance)
P1Tangent
Vector2F P1Tangent ()
P2Tangent
Vector2F P2Tangent ()
RadiusOffset
Boolean RadiusOffset (Double delta)
RayIntersect
Line2F RayIntersect (Line2F line, Double tolerance)
Finds the intersection points between the arc and a ray
Parameters:
line: The ray to test
Returns: A 2D Line where the end points are the points of intersection. If the line does not intersect the arc, returns Line2F.Undefined.
RegionInside
Boolean RegionInside (Rect2F rect)
RenderToPoints
Point3FArray RenderToPoints (Double tolerance)
SplitAtPoint
Arc2F[] SplitAtPoint (Point2F p)
SweepDiff
Double SweepDiff (Point2F p)
Used in offset polyline calculations
Parameters:
p:
Returns:
VectorInsideArc
Boolean VectorInsideArc (Vector2F v)