# ipe::Arc Class Reference
[Ipe Geometry]

An arc of an ellipse. More...

`#include <ipegeo.h>`

List of all members.

## Public Member Functions

- Arc ()
- Arc (const Matrix &m, Angle alpha, Angle beta)
- Arc (const Matrix &m)
- Arc (const Matrix &m0, const Vector &begp, const Vector &endp)
- bool isEllipse () const
- double distance (const Vector &v, double bound) const
- double distance (const Vector &v, double bound, Vector &pos, Angle &angle) const
- Rect bbox () const
- Vector beginp () const
- Vector endp () const
- void intersect (const Line &l, std::vector< Vector > &result) const
- void intersect (const Segment &s, std::vector< Vector > &result) const
- void intersect (const Arc &a, std::vector< Vector > &result) const
- void intersect (const Bezier &b, std::vector< Vector > &result) const

## Public Attributes

- Matrix iM
- Angle iAlpha
- Angle iBeta

## Detailed Description

An arc of an ellipse.

The ellipse is represented using the matrix that transforms the unit circle x^2 + y^2 = 1 to the desired ellipse. The arc coordinate system is the coordinate system of this unit circle.

A full ellipse is described by iAlpha = 0, iBeta = IpeTwoPi.

An elliptic arc is the image of the circular arc from iAlpha to iBeta (in increasing angle in arc coordinate system).

## Constructor & Destructor Documentation

ipe::Arc::Arc | ( |  | ) | `[inline]`

Construct unit circle.

ipe::Arc::Arc | ( | const Matrix & | m,
|  | Angle | alpha,
|  | Angle | beta |
| ) |  |  | `[inline]`

Construct with given parameters.

ipe::Arc::Arc | ( | const Matrix & | m | ) | `[inline]`

Construct an ellipse.

Arc::Arc | ( | const Matrix & | m,
|  | const Vector & | begp,
|  | const Vector & | endp |
| ) |  |  |

Construct arc for ellipse defined by m, from begp to endp.

This assumes that m has been correctly computed such that begb and endp already lie on the ellipse.

## Member Function Documentation

bool ipe::Arc::isEllipse | ( |  | ) | const`[inline]`

Is this an entire ellipse?

double Arc::distance | ( | const Vector & | v,
|  | double | bound |
| ) |  |  | const

This doesn't really compute the distance, but a reasonable approximation.

double Arc::distance | ( | const Vector & | v,
|  | double | bound,
|  | Vector & | pos,
|  | Angle & | angle |
| ) |  |  | const

Like distance(), but sets pos to point on arc and angle to its angle in arc coordinates. angle and pos are not modified if result is larger than bound.

Rect Arc::bbox | ( |  | ) | const

Return a tight bounding box.

Vector ipe::Arc::beginp | ( |  | ) | const`[inline]`

Return begin point of arc.

Vector ipe::Arc::endp | ( |  | ) | const`[inline]`

Return end point of arc.

void Arc::intersect | ( | const Line & | l,
|  | std::vector< Vector > & | result |
| ) |  |  | const

Compute intersection points of Arc with Line.

void Arc::intersect | ( | const Segment & | s,
|  | std::vector< Vector > & | result |
| ) |  |  | const

Compute intersection points of Arc with Segment.

void Arc::intersect | ( | const Arc & | a,
|  | std::vector< Vector > & | result |
| ) |  |  | const

Compute intersection points of Arc with Arc.

void Arc::intersect | ( | const Bezier & | b,
|  | std::vector< Vector > & | result |
| ) |  |  | const

Compute intersection points of Arc with Bezier.

## Member Data Documentation

Matrix ipe::Arc::iM

Angle ipe::Arc::iAlpha

Angle ipe::Arc::iBeta

The documentation for this class was generated from the following files:

- ipegeo.h
- ipegeo.cpp