sdf_csg op• 資料種類:coordgrid → sdf
• 呼叫: import fullseye as fs; fs.ledger.torus_sdf(grid, center, axis, major_radius, minor_radius)(要直接呼叫實作,import sdf_ops; sdf_ops.torus_sdf(grid, center, axis, major_radius, minor_radius);從台帳取用則 ops3d.get("torus_sdf"))
環面(甜甜圈形)的精確有號距離場(內側為負、外側為正)。
sdf(p) = ‖(r - major_radius, t)‖ - minor_radius(r 為到軸的半徑,t 為軸向距離)。芯線是半徑 major_radius 的圓,其周圍附有半徑 minor_radius 的管,因此可直接用作圓角(內角圓角)的解析形式。
參數與驗證(ValueError):
• grid / center / axis:與 cylinder_sdf 相同(軸為甜甜圈孔的方向)。
• major_radius:芯線的半徑(拒絕負值)。
• minor_radius:管的半徑(拒絕負值)。minor_radius >= major_radius 時孔會塌陷(紡錘環面)。不會拒絕,但只有在 minor_radius < major_radius 時才嚴格(2026-10-07 更正:以前寫的是「作為距離場是正確的」)。在管於軸上重疊的內側,值的絕對值小於到邊界的真實距離(major 1、minor 2 的中心處為 −1,真值為 −1.73)。符號、零等值面與外側的值是正確的,內側的絕對值是真實距離的下界,因此可安全用於球追蹤(sphere tracing)。
回傳值:grid.shape[:-1] 的 float64。
用法:以 sdf_subtract 在內角削出圓角 / 以 sdf_union 建構 O 形環槽的形狀。若只是倒圓角,sdf_smooth_union 較方便,但其圓角半徑取決於形狀 —— 想把半徑當作設計值時用這個。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• sdf_csg — py -3.11 examples_3d/sdf_csg.py
sdf 作為輸入)sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract
sdf_csg)grid_coords · sphere_sdf · box_sdf · plane_sdf · cylinder_sdf · capsule_sdf · sdf_union · sdf_intersect
*Provenance: sdf_ops.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.