从 3D 点和面列表中可视化网格

计算科学 matlab 网格生成
2021-12-05 10:09:31

我有一个顶点和面的列表。现在,我想使用给定的点和面列表创建一个网格并将其可视化。另外,我想通过在面上添加一个额外的点来使用网格。谁能指导我如何使用matlab做到这一点?任何函数名称或指南都会有所帮助。我找到了一种使用范围创建网格但不使用给定点的方法xy因此任何方向都会有所帮助。

顶点 位置
P0 31.1041、28.3457、29.165
P1 40.6266、28.3457、-1.10804
P2 40.0714、30.4443、-1.10804
P3 40.7155、31.1438、-1.10804
P4 42.0257、30.4443、-1.10804
P5 43.4692、28.3457、-1.10804
P6 37.5425、28.3457、14.5117
P7 37.0303、30.4443、14.2938
P8 37.6244、31.1438、14.5466
P9 38.8331、30.4443、15.0609
P10 40.1647、28.3457、15.6274
P11 29.0859、28.3457、27.1468
P12 28.6917、30.4443、26.7527
P13 29.149、31.1438、27.2099
P14 30.0792、30.4443、28.1402
人脸识别码 顶点编号
面对 0 7,6,1
面对 1 1,2,7
脸 2 8,7,2
面对 3 2,3,8
面对 4 9,8,3
面对 5 3,4,9
面对 6 10,9,4
面对 7 13,12,7
1个回答

我认为您正在寻找trimesh功能

在你的情况下,你会有类似的东西

pts = [31.1041, 28.3457, 29.165;
    40.6266, 28.3457, -1.10804;
    40.0714, 30.4443, -1.10804;
    40.7155, 31.1438, -1.10804;
    42.0257, 30.4443, -1.10804;
    43.4692, 28.3457, -1.10804;
    37.5425, 28.3457, 14.5117;
    37.0303, 30.4443, 14.2938;
    37.6244, 31.1438, 14.5466;
    38.8331, 30.4443, 15.0609;
    40.1647, 28.3457, 15.6274;
    29.0859, 28.3457, 27.1468;
    28.6917, 30.4443, 26.7527;
    29.149, 31.1438, 27.2099;
    30.0792, 30.4443, 28.1402];

T = [7, 6, 1;
    1, 2, 7;
    8, 7, 2;
    2, 3, 8;
    9, 8, 3;
    3, 4, 9;
    10, 9, 4;
    13, 12, 7];

trimesh(T, pts(:, 1), pts(:, 2), pts(:, 3))

但它似乎有一些重叠的三角形。