Weighted irregular annulus surface helpers
Source:R/graph_helpers.R
irregular_annulus_surface_helpers.RdConvenience helpers that build an annulus from deterministically irregular concentric rings with varying sample counts, stitch adjacent rings into a locally triangulated graph, and then optionally lift the resulting irregular planar parameterization into \(\mathbb{R}^3\). This provides a non-lattice annulus family with boundary and nonuniform local valence.
Usage
irregular.annulus.surface.embedding(
rings = 6,
outer_count = 28,
outer_radius = 1,
inner_radius = 0.45,
count_irregularity = 0.2,
radial_irregularity = 0.35,
phase_twist = 0.35,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1
)
irregular.annulus.surface.graph(
rings = 6,
outer_count = 28,
outer_radius = 1,
inner_radius = 0.45,
count_irregularity = 0.2,
radial_irregularity = 0.35,
phase_twist = 0.35,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1,
normalize = c("median", "mean", "none")
)Arguments
- rings
Number of concentric sample rings, including the inner and outer boundary cycles.
- outer_count
Approximate number of vertices on the outer boundary.
- outer_radius
Positive outer annulus radius.
- inner_radius
Positive inner annulus radius.
- count_irregularity
Irregularity level for the per-ring sample counts. Must lie in
[0, 1).- radial_irregularity
Irregularity level for within-ring radial perturbations. Must lie in
[0, 1].- phase_twist
Finite angular phase offset used to desynchronize neighboring rings.
- surface
Geometry family used for the 3D lift. One of
"flat","saddle","paraboloid","ripple", or"folded".- amplitude
Finite deformation amplitude.
- freq_u
Positive ripple frequency in the first planar coordinate. Used only when
surface = "ripple".- freq_v
Positive ripple frequency in the second planar coordinate. Used only when
surface = "ripple".- normalize
Normalization applied to the induced edge lengths. One of
"median","mean", or"none".
Value
irregular.annulus.surface.embedding() returns an n x 3 numeric
matrix with columns x, y, and z.
irregular.annulus.surface.graph() returns a list with components:
edges: the irregular annulus edges,n: number of vertices,edge_weights: induced positive edge lengths,coords_surface: the 3D embedding,coords_param: the irregular planar annulus coordinates,weight_scale: the normalization constant applied to the raw edge lengths,family: always"irregular.annulus",surface: the chosen surface name,rings: number of concentric rings,ring_sizes: sample counts on each ring,label: a human-readable family label.