torus_sdf — 3D 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.