我有一个不规则的几乎凸多面体的顶点,例如看起来像二十面体的东西:
xyz = [0.8198 -0.1474 -0.5534;
0.3944 0.4688 0.7904;
0.6851 0.6826 -0.2545;
-0.6855 0.4451 0.5762;
0.2117 -0.8247 -0.5245;
0.8263 -0.3318 0.455;
-0.8393 -0.502 -0.2086;
-0.0868 -0.9484 0.305;
-0.1256 0.9915 -0.0353;
-0.304 -0.3252 0.8954;
-0.7964 0.4053 -0.4489;
-0.0817 0.1043 -0.9912];
我想识别多边形的边缘和面并以 3D 形式绘制实体。这是我尝试过的,但虽然足够接近,但它看起来并不正确:
x = xyz(:, 1);
y = xyz(:, 2);
z = xyz(:, 3);
tri = delaunay(x, y, z);
tetramesh(tri, xyz)
编辑->按照克里斯·泰勒的回答,我意识到我还应该指定所需的输出“面”应该是一个单元格数组,其中每个元素都是代表该面顶点的 k 个索引的向量;同样,“边”应该是一个矩阵,其中每一行是一个由 2 个索引组成的向量,表示边连接的顶点
任何想法?
PS 我尝试添加标签:多面体、实体、delaunay 和 tetramesh,但系统不允许我这样做 - 也许有权创建新标签的人可以为我做这件事?也许删除不太精确的标签,如“情节”、“边”、“顶点”、“多边形”?