vivid v0.4.1 Vivid.Arc

This module represents an Arc, otherwise known as a circle segment.

Summary

Functions

Returns the center point of an arc

Changes the center point of arc

Returns the radius of an arc

Change the radius of arc

Returns the range of the arc

Change the range of an arc

Returns the start angle of an arc

Change the start angle of an arc

Returns the number of steps in the arc

Changes the number of steps in arc

Converts the arc into a Path, which is used for a bunch of things like Transforms, Bounds calculation, Rasterization, etc

Types

t()
t

Functions

center(arc)

Returns the center point of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.center
#Vivid.Point<{10, 10}>
center(arc, point)

Changes the center point of arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.center(Vivid.Point.init(15,15))
...> |> Vivid.Arc.center
#Vivid.Point<{15, 15}>
init(center, radius, start_angle, range, steps \\ 12)
init(Vivid.Point.t, number, number, number, integer) :: Vivid.Arc.t

Creates an Arc.

  • center is a Point definining the center point of the arc’s parent circle.
  • radius is the radius of the parent circle.
  • start_angle is the angle at which to start drawing the arc, 0 is vertical.
  • range is the number of degrees to draw the arc.
  • steps the arc is drawn by dividing it into a number of lines. Defaults to 12.

Examples

iex> Vivid.Arc.init(Vivid.Point.init(5,5), 4, 45, 15)
%Vivid.Arc{
  center:      %Vivid.Point{x: 5, y: 5},
  radius:      4,
  start_angle: 45,
  range:       15,
  steps:       12
}
radius(arc)
radius(Vivid.Arc.t) :: number

Returns the radius of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.radius
5
radius(arc, radius)
radius(Vivid.Arc.t, number) :: Vivid.Arc.t

Change the radius of arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.radius(10)
...> |> Vivid.Arc.radius
10
range(arc)
range(Vivid.Arc.t) :: number

Returns the range of the arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.range
90
range(arc, theta)
range(Vivid.Arc.t, number) :: Vivid.Arc.t

Change the range of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.range(270)
...> |> Vivid.Arc.range
270
start_angle(arc)
start_angle(Vivid.Arc.t) :: number

Returns the start angle of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.start_angle
0
start_angle(arc, theta)
start_angle(Vivid.Arc.t, number) :: Vivid.Arc.t

Change the start angle of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.start_angle(45)
...> |> Vivid.Arc.start_angle
45
steps(arc)
steps(Vivid.Arc.t) :: integer

Returns the number of steps in the arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.steps
12
steps(arc, steps)
steps(Vivid.Arc.t, integer) :: Vivid.Arc.t

Changes the number of steps in arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.steps(19)
...> |> Vivid.Arc.steps
19
to_path(arc)

Converts the arc into a Path, which is used for a bunch of things like Transforms, Bounds calculation, Rasterization, etc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 3)
...> |> Vivid.Arc.to_path
#Vivid.Path<[#Vivid.Point<{5, 10}>, #Vivid.Point<{6, 13}>, #Vivid.Point<{8, 14}>, #Vivid.Point<{10, 15}>]>