mesh_edge_lengths — 3D terrain op

• Datenarten: mesh → signal

• Aufruf: import fullseye as fs; fs.ledger.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray' (die Implementierung direkt: import render3d; render3d.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray'; aus dem Register: ops3d.get("mesh_edge_lengths"))

Verwendung

Lokale Kantenlänge eines Dreiecksnetzes, je Vertex, je Fläche oder je eindeutiger Kante.

Gibt (N,) pro Vertex (Mittel der anliegenden Kanten), (M,) pro Fläche (Mittel ihrer 3 Kanten) oder (E,) pro eindeutiger Kante zurück.

Dies ist die Auflösungskarte des Meshes in seinen eigenen Einheiten: die kürzeste Wellenlänge, die ein Bereich als *Geometrie* tragen kann, ist etwa das Doppelte der lokalen Kante (Nyquist); genau das verwenden mesh_subdivide (target_edge) und displacement_band_weights. Deterministisch; fail-closed bei degenerierten Meshes / unbekanntem per.

Ermittelt die ungerichteten eindeutigen Kanten (E,2) und aggregiert die Länge jeder Kante (Mesh-Einheiten, float64).

• per='vertex': Mittel der am Vertex anliegenden Kantenlängen (N,). Ein isolierter Vertex, der zu keiner Fläche gehört, hat keine Kanten und erhält stillschweigend den Mittelwert aller Kanten (nicht null).

• per='face': Mittel der 3 Kanten der Fläche (M,).

• per='edge': Länge der eindeutigen Kanten selbst (E,). Die Kantenreihenfolge ist die lexikographische Ordnung von np.unique (aufsteigender Vertexindex) und entspricht nicht der Reihenfolge von F.

per außer den 3 obigen, leere Vertices/Flächen, ein Flächenindex außerhalb des Bereichs oder nicht endliche Koordinaten lösen ValueError aus. Dient zur Wahl von local_edge für displacement_band_weights oder target_edge für mesh_subdivide (z. B. die Hälfte des Medians).

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)

• itokawa_regolith_hero — py -3.11 examples_3d/itokawa_regolith_hero.py

Typkompatible Folge-Operatoren (nehmen signal als Eingabe)

fuse_to_voxel

Gleiche Kategorie (terrain)

mesh_displace_fbm · terrain_region_mask · mesh_scatter_boulders · mesh_subdivide · displacement_band_weights · mesh_displace_spectrum · bump_normals_fbm


*Provenance: render3d.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.