vertex_curvature — 3D mesh_process op

• Datenarten: mesh → curvature

• Aufruf: import fullseye as fs; fs.ledger.vertex_curvature(mesh) -> 'np.ndarray' (die Implementierung direkt: import mesh_props; mesh_props.vertex_curvature(mesh) -> 'np.ndarray'; aus dem Register: ops3d.get("vertex_curvature"))

Verwendung

Der Betrag der mittleren Krümmung an jedem Vertex eines Dreiecksnetzes. → (N,).

Der diskrete Laplace-Beltrami-Operator von Meyer et al. (2003):

K(x_i) = (1 / (2·A_mixed_i)) · Σ_{j∈1-ring} (cot α_ij + cot β_ij)·(x_i − x_j)

ist gleich dem Normalenvektor der mittleren Krümmung K = 2·H·n (H = mittlere Krümmung, n = Einheitsnormale). Hier wird der orientierungsunabhängige Betrag H_i = |K(x_i)| / 2 zurückgegeben. α_ij, β_ij sind die 2 der Kante (i,j) gegenüberliegenden Winkel, A_mixed ist Meyers gemischte Fläche (Voronoi-Fläche für nicht stumpfwinklige Dreiecke, 1/2 oder 1/4 der Fläche für stumpfwinklige), wodurch die Krümmungsschätzung genauer wird als mit der naiven baryzentrischen Fläche.

Auf einer Kugel mit Radius R (geschlossene Mannigfaltigkeit) gilt an allen Ecken H ≈ 1/R (innerhalb des Diskretisierungsfehlers). An inneren Ecken einer Ebene gilt H ≈ 0. Grenze (honest): Der Cotangens-Laplace-Beltrami ist nur auf geschlossenen Mannigfaltigkeiten / an inneren Ecken gültig; an den Randecken eines offenen Meshs (wo sich der 1-ring nicht schließt) werden die Werte divergent ungenau. Aussagekräftig nur für geschlossene Meshes oder für die inneren Ecken eines offenen Meshs.

Args:

mesh: Tupel aus (vertices (N,3), faces (M,3)).

Returns:

(N,) Beträge der mittleren Krümmung (nichtnegativ). Werte an Randecken sind aus obigem Grund unzuverlässig.

Raises:

ValueError: ungültige Form, Index außerhalb des Bereichs oder eine Ecke mit gemischter Fläche null (degeneriert).

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• dl_mesh_curvature — py -3.11 examples_3d/dl_mesh_curvature.py

• mesh_props — py -3.11 examples_3d/mesh_props.py

• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py

Typkompatible Folge-Operatoren (nehmen curvature als Eingabe)

fuse_to_voxel

Gleiche Kategorie (mesh_process)

laplacian_smooth · taubin_smooth · decimate_qem · face_normals · vertex_normals · mesh_area · face_areas · mesh_volume


*Provenance: mesh_props.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.