Skip to contents

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.

Usage

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")
)

Arguments

resolution

Positive lattice-resolution control. Larger values produce finer triangulations.

outer.radius

Positive outer annulus radius.

inner.radius

Positive inner annulus radius. Must be strictly smaller than outer.radius.

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

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.

Details

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.

Examples

annulus <- triangulated.annulus.surface.graph(resolution = 6)