vcg.tri.AnisotropicDistance是一个计算网格模型中点之间的距离的工具,根据网格模型的各向异性属性(Anisotropic)来计算。
创建一个AnisotropicDistance对象。
参数:
mesh
: 网格模型重置并关联一个新的网格模型。
参数:
mesh
: 网格模型根据所关联的网格模型,构建距离数据。如果提供了起始点的索引列表,在计算距离时将从这些点开始。
参数:
start_points_idxs
(可选): 起始点的索引列表。默认为None返回从起始点到结束点的最短距离。
参数:
start_idx
: 起始点的索引end_idx
: 结束点的索引返回值:
返回从起始点到结束点的最短距离及其路径。
参数:
start_idx
: 起始点的索引end_idx
: 结束点的索引返回值:
目标网格模型。
每个点跳跃分布数组,保存网格模型各向异性属性信息。
起始点列表。
import vcg
from vcg import algorithms
from vcg import tri
import numpy as np
mesh = vcg.Mesh("my_mesh.obj")
mesh.update_topology()
# 计算各向异性属性信息
alg = algorithms.UpdateAnisotropy()
alg.process_mesh(mesh)
# 构建距离数据
ani_dist = tri.AnisotropicDistance(mesh)
ani_dist.build()
# 计算起始点到所有点的最短距离
all_min_dists = []
for vi in range(mesh.num_vertices()):
dist = ani_dist.min_distance(0, vi)
all_min_dists.append(dist)
# 计算起始点到所有点的最短距离及其路径
all_min_dists_and_paths = []
for vi in range(mesh.num_vertices()):
dist, path = ani_dist.min_distance_and_path(0, vi)
all_min_dists_and_paths.append((dist, path))