angle-methods {affiner} | R Documentation |
Implemented base methods for angle vectors
Description
We implemented methods for several base generics for the angle()
vectors.
Usage
## S3 method for class 'angle'
as.double(x, unit = angular_unit(x), ...)
## S3 method for class 'angle'
as.complex(x, modulus = 1, ...)
## S3 method for class 'angle'
format(x, unit = angular_unit(x), ..., use_unicode = is_utf8_output())
## S3 method for class 'angle'
print(x, unit = angular_unit(x), ..., use_unicode = is_utf8_output())
## S3 method for class 'angle'
abs(x)
Arguments
x |
|
unit |
A string of the desired angular unit. Supports the following strings
(note we ignore any punctuation and space characters as well as any trailing
|
... |
Passed to |
modulus |
Numeric vector representing the complex numbers' modulus |
use_unicode |
If |
Details
Mathematical Ops (in particular
+
and-
) for two angle vectors will (if necessary) set the second vector'sangular_unit()
to match the first.-
as.numeric()
takes aunit
argument which can be used to convert angles into other angular units e.g.angle(x, "degrees") |> as.numeric("radians")
to cast a numeric vectorx
from degrees to radians. -
abs()
will calculate the angle modulo full turns. Use
is_congruent()
to test if two angles are congruent instead of==
orall.equal()
.Not all implemented methods are documented here and since
angle()
is anumeric()
class many other S3 generics besides the explicitly implemented ones should also work with it.
Value
Typical values as usually returned by these base generics.
Examples
# Two "congruent" angles
a1 <- angle(180, "degrees")
a2 <- angle(pi, "radians")
print(a1)
print(a1, unit = "radians")
print(a1, unit = "pi-radians")
cos(a1)
sin(a1)
tan(a1)
# mathematical operations will coerce second `angle()` object to
# same `angular_unit()` as the first one
a1 + a2
a1 - a2
as.numeric(a1)
as.numeric(a1, "radians")
as.numeric(a1, "turns")
# Use `is_congruent()` to check if two angles are "congruent"
a1 == a2
isTRUE(all.equal(a1, a2))
is_congruent(a1, a2)
is_congruent(a1, a2, mod_turns = FALSE)
a3 <- angle(-180, "degrees") # Only congruent modulus full turns
a1 == a3
isTRUE(all.equal(a1, a2))
is_congruent(a1, a3)
is_congruent(a1, a3, mod_turns = FALSE)