Weighted triangulated pair-of-pants surface helpers
Source:R/graph_helpers.R
triangulated_pair_of_pants_surface_helpers.RdConvenience helpers that triangulate a planar pair-of-pants domain by clipping a regular triangular lattice to a disk with two interior circular holes. The resulting graph is a triangulated surface with three boundary components and a deterministic non-grid topology.
Usage
triangulated.pair.of.pants.surface.embedding(
resolution = 12,
outer_radius = 1.1,
hole_radius = 0.24,
hole_offset = 0.38,
hole_height = 0.18,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1
)
triangulated.pair.of.pants.surface.graph(
resolution = 12,
outer_radius = 1.1,
hole_radius = 0.24,
hole_offset = 0.38,
hole_height = 0.18,
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 radius of the outer boundary.
- hole_radius
Positive radius of each interior hole.
- hole_offset
Positive horizontal offset of the two hole centers from the vertical axis.
- hole_height
Vertical coordinate shared by the two hole centers.
- 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
triangulated.pair.of.pants.surface.embedding() returns an n x
3 numeric matrix with columns x, y, and z.
triangulated.pair.of.pants.surface.graph() returns a list with
components:
edges: the triangulated pair-of-pants edges,n: number of vertices,edge_weights: induced positive edge lengths,coords_surface: the 3D embedding,coords_param: the canonical 2D pair-of-pants coordinates,weight_scale: the normalization constant applied to the raw edge lengths,family: always"triangulated.pair.of.pants",surface: the chosen surface name,resolution: the lattice-resolution parameter,label: a human-readable family label.
Details
triangulated.pair.of.pants.surface.embedding() returns the 3D
coordinates of the clipped lattice vertices in the same vertex order as
edges.triangulated.pair.of.pants().
triangulated.pair.of.pants.surface.graph() returns a reusable
weighted-graph bundle with the pair-of-pants edges, induced edge weights, 3D
embedding, and the 2D parameter coordinates of the clipped domain.