geometry op• Datenarten: primitive → measurement
• Aufruf: import fullseye as fs; fs.ledger.distance_line_line(p1, d1, p2, d2) (die Implementierung direkt: import match3d; match3d.distance_line_line(p1, d1, p2, d2); aus dem Register: ops3d.get("distance_line_line"))
Der Abstand zweier Geraden (auch windschiefer). Bei Parallelität weicht er auf den Punkt-Geraden-Abstand aus.
★Dies ist der Abstand unendlicher Geraden. Bei endlichen Strecken wie Gliedmaßen, Roboterlinks oder Rohren kann 0 herauskommen, obwohl sie getrennt sind (gemessen: (0,0,0)-(1,0,0) und (5,0,0)-(6,0,0) ergeben 0.0, Ground Truth 4.0). Für Streckenpaare distance_segment_segment verwenden — wer das bei der Sicherheitsabstandsprüfung verwechselt, liegt auf der Seite, die die Gefahr unterschätzt.
Bildet n = d̂1 × d̂2; bei |n| < 1e-9 (parallel) distance_point_line(p2, p1, d1), sonst |(p2 − p1)·n̂| (Länge des gemeinsamen Lots) als float. Bei sich schneidenden Geraden 0. p1, d1, p2, d2 sind numerische 2- oder 3-Vektoren; gemischte Dimensionen ergeben ValueError. Nicht parallele Geraden in 2-D schneiden sich, der Abstand müsste also 0 sein, aber da np.cross ein Skalar wird, schlägt @ fehl (in 2-D kommt nur der parallele Fall durch). In 3-D verwenden. Einheit = Einheit der Eingabekoordinaten.
Einsatz: Koaxialität von 2 Achsen (fit_line_3d), Lochabstand.
• 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.
• geometry_metrology — py -3.11 examples_3d/geometry_metrology.py
measurement als Eingabe)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
geometry)line_from_2points · plane_from_3points · angle_3points · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line
*Provenance: match3d.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.