Convenience helpers that triangulate a planar annulus by clipping a regular triangular lattice to the region between two concentric circles. The resulting graph is a triangulated manifold with boundary and a single hole, making it a useful complement to the closed triangulated-polyhedron families.
triangulated.annulus.surface.embedding(
resolution = 12,
outer_radius = 1,
inner_radius = 0.45,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1
)triangulated.annulus.surface.graph(
resolution = 12,
outer_radius = 1,
inner_radius = 0.45,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1,
normalize = c("median", "mean", "none")
)
triangulated.annulus.surface.embedding() returns an n x 3
numeric matrix with columns x, y, and z.
triangulated.annulus.surface.graph() returns a list with components:
edges: the triangulated-annulus edges,
n: number of vertices,
edge_weights: induced positive edge lengths,
coords_surface: the 3D embedding,
coords_param: the canonical 2D annulus coordinates,
weight_scale: the normalization constant applied to the raw
edge lengths,
family: always "triangulated.annulus",
surface: the chosen surface name,
resolution: the lattice-resolution parameter,
label: a human-readable family label.
Positive lattice-resolution control. Larger values produce finer triangulations.
Positive outer annulus radius.
Positive inner annulus radius. Must be strictly smaller
than outer_radius.
Geometry family used for the 3D lift. One of "flat",
"saddle", "paraboloid", "ripple", or
"folded".
Finite deformation amplitude.
Positive ripple frequency in the first planar coordinate. Used
only when surface = "ripple".
Positive ripple frequency in the second planar coordinate. Used
only when surface = "ripple".
Normalization applied to the induced edge lengths. One of
"median", "mean", or "none".
triangulated.annulus.surface.embedding() returns the 3D coordinates
of the clipped lattice vertices in the same vertex order as
edges.triangulated.annulus(). triangulated.annulus.surface.graph()
returns a reusable weighted-graph bundle with the annulus edges, induced edge
weights, the 3D embedding, and the 2D annulus parameter coordinates.