plane_from_3points — 3D geometry op

• 資料種類:points → primitive

• 呼叫: import fullseye as fs; fs.ledger.plane_from_3points(a, b, c)(要直接呼叫實作,import match3d; match3d.plane_from_3points(a, b, c);從台帳取用則 ops3d.get("plane_from_3points"))

用法

3 點 → 平面(通過點, 單位法線)。三個座標即可確定平面(2D/3D 通用)。

回傳值 (a, n): a 為第 1 個點,n 為 n = (b−a)×(c−a) 單位化後的結果(方向為 a→b→c 的右手螺旋)。參數為數值的 2 或 3 維向量(其他情況或維度混用則 ValueError)。3 點共線時 n 以零向量原樣回傳(不拋例外)。傳入 2 維點時 np.cross 回傳純量(帶正負號面積的 2 倍),因此 n 不是向量而是 ±1 的純量。在 2-D 中需要直線的法線時,請將 line_from_2points 的方向旋轉 90° 後使用。

後續: 將此 (a, n) 傳給 distance_point_plane / intersect_line_plane / intersect_planes / angle_between_planes。從點雲則用 fit_plane_3d。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• geometry_metrology — py -3.11 examples_3d/geometry_metrology.py

型別可銜接的下一個運算子(可接受 primitive 作為輸入)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

同類別(geometry)

line_from_2points · angle_3points · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line


*Provenance: match3d.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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