terrain op• 数据种类:mesh → signal
• 调用: import fullseye as fs; fs.ledger.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray'(要直接调用实现,import render3d; render3d.mesh_edge_lengths(V, F, *, per: 'str' = 'vertex') -> 'np.ndarray';从台账取用则 ops3d.get("mesh_edge_lengths"))
三角网格的局部边长(逐顶点、逐面或逐唯一边)。
返回逐顶点 (N,)(相接边的平均)、按面 (M,)(其 3 条边的平均),或按唯一边 (E,)。
这是网格在其自身单位下的分辨率图:一个区域能作为*几何*承载的最短波长约为局部边长的两倍(Nyquist),这正是 mesh_subdivide(target_edge)和 displacement_band_weights 所使用的量。确定性;对退化网格/未知的 per fail-closed。
取无向的唯一边 (E,2),汇总每条边的长度(网格单位,float64)。
• per='vertex':与顶点相接的边长的平均 (N,)。不属于任何面的孤立顶点没有边,因此会被静默填入 全部边的平均值(不会是零)。
• per='face':面的 3 条边的平均 (M,)。
• per='edge':唯一边本身的长度 (E,)。边的顺序是 np.unique 的字典序(顶点 index 从小到大),与 F 的顺序不对应。
per 不是上述 3 种之一、顶点/面为空、face index 越界、坐标非有限时抛出 ValueError。用于确定 displacement_band_weights 的 local_edge 或 mesh_subdivide 的 target_edge(例:取中位数的一半)。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• itokawa_regolith_hero — py -3.11 examples_3d/itokawa_regolith_hero.py
signal 作为输入)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 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.