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.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")
)The coords_surface component is 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".
The coords_surface component is the 3D coordinates
of the clipped lattice vertices in the same vertex order as
edges. 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.
annulus <- triangulated.annulus.surface.graph(resolution = 6)
Run the code above in your browser using DataLab