vivid v0.4.2 Vivid.Arc View Source

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

Example

iex> use Vivid
...> Arc.init(Point.init(10,10), 10, 0, 45)
...> |> to_string()
"@@@@@@\n" <>
"@@@  @\n" <>
"@@@ @@\n" <>
"@@ @@@\n" <>
"@@ @@@\n" <>
"@  @@@\n" <>
"@ @@@@\n" <>
"@ @@@@\n" <>
"@ @@@@\n" <>
"@@@@@@\n"

Link to this section 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

Link to this section Types

Link to this section Functions

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}>

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}>
Link to this function init(center, radius, start_angle, range, steps \\ 12) View Source
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 the parallel to the X axis, to the left.
  • 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
}

Returns the radius of an arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.radius
5
Link to this function radius(arc, radius) View Source
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

Returns the range of the arc.

Example

iex> Vivid.Arc.init(Vivid.Point.init(10,10), 5, 0, 90, 12)
...> |> Vivid.Arc.range
90

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
Link to this function start_angle(arc) View Source
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
Link to this function start_angle(arc, theta) View Source
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

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

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

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}>]>