This class describes an elliptical in center parameterization arc that is approximated using Bezier curves. It can be used to draw circles, circular arcs, ellipses and elliptical arcs, all either in clockwise or counterclockwise direction and optionally inclined in respect to the x-axis.
Length of semi-major axis
Length of semi-minor axis
Direction of arc - if
true in clockwise direction, else in
x-coordinate of center point
y-coordinate of center point
End angle in degrees
Inclination in degrees of semi-major axis in respect to x-axis
The maximal number of curves used for approximating a complete ellipse.
The higher the value the better the approximation will be but it will also take longer to compute. The value should not be lower than 4. Default value is 6 which already provides a good approximation.
Start angle in degrees
Public Class Methods
Creates and configures a new elliptical arc object.
See configure for the allowed keyword arguments.
Creates an elliptical arc with default values (a counterclockwise unit circle at the origin).
Public Instance Methods
Configures the arc with
center point (
start angle of
end angle of
an inclination in respect to the x-axis of
clockwise argument determines if the arc is drawn in the
counterclockwise direction (
false) or in the clockwise
Any arguments not specified are not modified and retain their old value, see initialize for the inital values.
One subarray consists of
[end_point_x, end_point_y, p1: control_point_1, p2: control_point_2]
The first start point is the one returned by start_point, the other start points are the end points of the curve before.
The format of the subarray is chosen so that it can be fed to the Canvas#curve_to method by using array splatting.
See: ELL s3.4.1 (especially the last box on page 18)
Draws the arc on the given Canvas.
If the argument
true, a Canvas#move_to operation is
executed to move the current point to the start point of the arc. Otherwise
it is assumed that the current point already coincides with the start point
The max_curves value is set to the value of the configuration option 'graphic_object.arc.max_curves' before drawing.
Returns the end point of the elliptical arc.
Returns the point at
angle degrees on the ellipse.
Note that the point may not lie on the arc itself!
Returns the start point of the elliptical arc.