gpt4 book ai didi

python - 几何 - 将 3D 点划分为具有特定角度的线段

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:16 25 4
gpt4 key购买 nike

我有一个圆柱体(x, y, z)形式的点云,如图所示:。

cylinder

我想将其分成特定角度内的 3D 片段。

看起来我有一个馅饼,我需要把它切成碎片。

最好的方法是什么?

最佳答案

如果我理解正确的话,这就是你可以使用https://github.com/daavoo/pyntcloud做你想做的事情的方法。并使用 this cylinder 为例.ply 格式。

您可以加载气缸:

from pyntcloud import PyntCloud
cylinder = PyntCloud.from_file("cylinder.ply")

Wich 是一个三角形网格,如下所示:

cylinder mesh

您可以按如下方式从网格生成点云(如果您已经将圆柱体作为点云,则无需执行此步骤):

n_points = 100000
cylinder = cylinder.get_sample(
"mesh_random_sampling",
n=n_points,
as_PyntCloud=True)

现在看起来像这样:

cylinder point cloud

现在是我认为进行“饼图分割”的正确方法。

您可以将 (x, y, z) 笛卡尔坐标转换为 (ro, phi, z) 柱坐标,如下所示:

cylinder.add_scalar_field("cylindrical_coords")

“phi”标量场是一个值,它用您感兴趣的角度标识每个点。可视化更具解释性:

cylinder phi scalar field

您现在可以使用此 phi 值将点划分为所需数量的段:

import pandas as pd
n_segments = 3
cylinder.points["segment"] = pd.cut(
cylinder.points["phi"],
n_segments,
labels=range(n_segments))

现在,cylindrical.points["segment"] 有一个唯一的值,将每个点分配给一个“饼图段”。

可视化对于欣赏“饼图片段”再次很有用:

cylinder pie segment

关于python - 几何 - 将 3D 点划分为具有特定角度的线段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com