The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
isocubeGrob()
and grid.isocube()
now make
sure that the fill
of gp_border
is always
"transparent"
(#58).affineGrob()
and grid.affine()
provide
wrappers around grid::defineGrob()
and
grid::useGrob()
isocubeGrob()
and grid.isocube()
provides
a convenience wrapper for the isometric cube case.affine_settings()
computes grid
affine
transformation feature viewports and transformation functions
angle()
creates angle vector S3 classes that allow
users to use whichever angular unit is most convenient for them:
Supports “degrees”, “radians”, “half-turns” (aka “pi-radians”), (full) “turns”, and “gradians” units.
is_angle()
tests whether the input is an angle
vector.
as_angle()
casts objects to angle vectors.
degrees()
, gradians()
,
pi_radians()
, radians()
, and
turns()
are convenience wrappers around
as_angle()
for those commonly used angular units.
is_congruent()
is a generic S3 method which tests
whether two R objects are “congruent”. The is_congruent()
method for angle vectors tests whether two angles are
congruent.
angular_unit()
can be used to get/set the angular
unit of angle vectors.
The default angular unit can be adjusted locally/globally by
setting the “affiner_angular_unit” option.
e.g. options(affiner_angular_unit = "turns")
.
sine()
, cosine()
,
tangent()
, secant()
, cosecant()
,
cotangent()
, arcsine()
,
arccosine()
, arctangent()
,
arcsecant()
, arccosecant()
, and
arccotangent()
are angle vector aware trigonometric
functions.
We implement methods for several base generics (plus as a numeric vector it inherits support for several more). Some notes:
+
and -
) or a c()
combining
operation are angle vectors then we coerce the second one to use the
same angular unit as the first one.as.numeric()
takes a unit
argument which
can be used to convert angles into other angular units
e.g. angle(x, "degrees") |> as.numeric("radians")
to
cast a numeric vector x
from degrees to radians.abs()
will calculate the angle modulo full turns.Coord1D
, Coord2D
, and
Coord3D
are (Cartesian) coordinate R6 classes
is_coord1d()
, is_coord2d()
, and
is_coord3d()
test whether objects are Coord1D
,
Coord2D
, or Coord3D
R6 classes
as_coord1d()
, as_coord2d()
, and
as_coord3d()
cast objects to Coord1D
,
Coord2D
, or Coord3D
R6 classes
Several mathematical operations are supported for
Coord1D
, Coord2D
, or Coord3D
R6
classes
*
either applies a “dot” product (if multiplying
another Coord1D
, Coord2D
, or
Coord3D
object) or a “scaling” transformation (if
multiplying a numeric value)/
applies a “scaling” transformation-
applies a “scaling” transformation whereas
binary -
and +
apply a “translation”
transformationAdditional S3 methods:
abs()
computes Euclidean normconvex_hull2d()
computes convex hull (currently just
for Coord2D
vectors)cross_product3d()
computes a cross product between
Coord3D
vectorsdistance1d()
, distance2d()
, and
distance3d()
computes Euclidean distancesmean()
computes centroids of coordinatesnormal2d()
computes Coord2D
normalsnormal3d()
computes Coord3D
normalsplot()
and points()
plots
Coord1D
and Coord2D
coordinates using base
graphics. If the suggested {ggplot2}
package is installed
one may also use autolayer()
to plot Coord1D
and Coord2D
points. If the suggested {rgl}
package is installed one may also use plot3d()
to plot
Coord3D
points (or straightforwardly use the primitive
points3d()
).range()
computes axis-aligned rangesPoint1D
, Line2D
, and
Plane3D
R6 classes
as_point1d()
casts objects to Point1D
R6
classesas_line2d()
casts objects to Line2D
R6
classesas_plane3d()
casts objects to Plane3D
R6
classesis_point1d()
tests whether objects are
Point1D
R6 classesis_line2d()
tests whether objects are
Line2D
R6 classesis_plane3d()
tests whether objects are
Plane3D
R6 classestransform1d()
, transform2d()
, and
transform3d()
create 1D/2D/3D affine transformation matrix
S3 classes
is_transform1d()
,is_transform2d()
, and
is_transform3d()
test iftransform1d()
,
transform2d()
, or transform3d()
objects.as_transform1d()
, as_transform2d()
, and
as_transform3d()
cast objects to
transform1d()
, transform2d()
, or
transform3d()
objects.permute2d()
and permute3d()
transformation
matrices permutes coordinate axes.project1d()
, project2d()
, and
project3d()
create projection matrices.reflect1d()
, reflect2d()
and
reflect3d()
create reflection affine transformation
matrices.rotate2d()
and rotate3d()
create rotation
affine transformation matrices. rotate3d_to_AA()
converts
from 3D rotation matrix to axis-angle representation.scale1d()
, scale2d()
, and
scale3d()
create scaling affine transformation
matrices.shear2d()
and shear3d()
create shearing
affine transformation matrices.translate1d()
, translate2d()
, and
translate3d()
create translation affine transformation
matrices.{affiner}
supports the following options settable by
base::options()
:
affiner_angular_unit
: The default for the
unit
argument used by angle()
and
as_angle()
. The default for this option is “degrees”.affiner_grid_unit
: The default for the
unit
argument used by affine_settings()
. The
default for this option is inches
.affiner_options()
.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.