affiner
A Finer Way to Render 3D Illustrated Objects in grid Using Affine Transformations
affiner is quietly turning a grid transformation helper into a small computational geometry library.
◆Recent moves
- 3mo ago
Ellipse, polygon and segment objects, with star and n-gon constructors
Adds Ellipse2D, Polygon2D and Segment2D R6 classes along with constructors for rectangles, regular n-gons and isotoxal star polygons, plus exported dot products in one, two and three dimensions. These are the concrete shapes the generics introduced in 0.2.1 were waiting for, which is why the package's geometry surface expands so quickly here.
View source ↗ - 6mo ago
Intersection, equivalence and parallelism generics across geometric types
Introduces has_intersection(), intersection(), is_equivalent() and is_parallel() as S3 generics, with methods spanning angle vectors and the Point1D, Line2D and Plane3D classes — testing congruence for angles and post-standardisation identity for the geometric types. Defining the operations as generics first is what let the next release add object types without reworking anything.
View source ↗ - 1y ago
Isocube border fill forced transparent
Ensures isocubeGrob() and grid.isocube() always set the border graphical parameter's fill to transparent. A one-line rendering correction.
View source ↗ - 1y ago
Initial release: affine grob wrappers and multi-unit angle vectors
The package's opening scope — affineGrob() and grid.affine() wrapping grid's defineGrob and useGrob, an isocube convenience case, and affine_settings() offered as a standalone file under the Unlicense for other packages to copy. The angle() class supporting five angular units is the piece the later geometry work builds on.
View source ↗