trimesh split

张开发
2026/4/16 19:31:29 15 分钟阅读

分享文章

trimesh split
def todel_clean_mesh_small_components1(mesh, min_component_ratio0.01): def distance_to_main(component, main_body): # 计算组件质心到主体最近点的距离 centroid component.centroid closest_point, distance, _ trimesh.proximity.closest_point(main_body, [centroid]) return distance[0] components trimesh.graph.connected_components(mesh.face_adjacency) component_sizes [len(comp) for comp in components] largest_component_faces components[np.argmax(component_sizes)] # 创建包含这些面的布尔掩码 face_mask np.zeros(len(mesh.faces), dtypebool) face_mask[list(largest_component_faces)] True # 提取最大组件 mesh_largest mesh.submesh([face_mask], appendTrue) # dists [distance_to_main(comp, mesh_largest) for comp in components] return mesh_largest

更多文章