Angle.DMS (angle v1.0.1)
Functions relating to dealing with angles in Degrees, Minutes and Seconds.
Link to this section Summary
Functions
Convert the angle to it's absolute value by discarding complete revolutions and converting negatives.
Ensure that a DMS representation is present for this angle, otherwise calculate one.
Initialize an Angle from integer d degrees.
Initialize an Angle from integer d degrees, optionally followed by integer
m minutes.
Initialize an Angle from integer d degrees, followed by integer
m minutes and s seconds.
Attempt to parse a string of degrees, minutes and seconds.
Returns the DMS representation of the Angle.
Link to this section Functions
abs(angle)
Convert the angle to it's absolute value by discarding complete revolutions and converting negatives.
Examples
iex> ~a(-270,15,45)dms
...> |> Angle.DMS.abs()
#Angle<90° 45′ 15″>
iex> ~a(1170,0,0)dms
...> |> Angle.DMS.abs()
#Angle<90°>
ensure(angle)
Ensure that a DMS representation is present for this angle, otherwise calculate one.
Examples
iex> ~a(90.5)d
...> |> ensure()
...> |> Map.get(:dms)
{90, 30, 0.0}
iex> ~a(166.7662400)d
...> |> ensure()
...> |> Map.get(:dms)
{166, 45, 58.464000000037686}
iex> ~a(1.579522973054868)r
...> |> ensure()
...> |> Map.get(:dms)
{90, 30, 0.0}
iex> ~a(100.55555555555556)g
...> |> ensure()
...> |> Map.get(:dms)
{90, 30, 0.0}
init(d)
Initialize an Angle from integer d degrees.
Examples
iex> init(13)
#Angle<13°>
init(d, m)
Initialize an Angle from integer d degrees, optionally followed by integer
m minutes.
Examples
iex> init(13, 30)
#Angle<13° 30′>
init(d, m, s)
Initialize an Angle from integer d degrees, followed by integer
m minutes and s seconds.
Examples
iex> init(13, 30, 45)
#Angle<13° 30′ 45″>
parse(value)
Attempt to parse a string of degrees, minutes and seconds.
Examples
iex> "166 45 58.46" |> parse() |> inspect()
"{:ok, #Angle<166° 45′ 58.46″>}"
iex> "166,45,58.46" |> parse() |> inspect()
"{:ok, #Angle<166° 45′ 58.46″>}"
iex> "166° 45′ 58.46″" |> parse() |> inspect()
"{:ok, #Angle<166° 45′ 58.46″>}"
iex> "166°45′58.46″" |> parse() |> inspect()
"{:ok, #Angle<166° 45′ 58.46″>}"
iex> "-166° 45′ 58.46″" |> parse() |> inspect()
"{:ok, #Angle<-166° 45′ 58.46″>}"
to_dms(angle)
Returns the DMS representation of the Angle.
Examples
iex> ~a(0.5)r
...> |> to_dms()
...> |> inspect()
"{#Angle<28.64788975654116°>, {28, 38, 52.403123548181156}}"