我想創建一個非結構化的三角形網格,我有兩個檔案:頂點和三角形。問題是 Matplotlib 三角剖分方法要求頂點陣列的長度和三角形陣列的長度相同,但我的資料中的三角形比頂點多。因此,我只能得到其中的一部分(跳過三角形陣列的尾部),而不是完整的網格。
我的輸出:

預期輸出:

頂點陣列:
[[0. 0. ]
[0. 1. ]
[1. 0. ]
[1. 1. ]
[0. 0.33333333]
[0. 0.66666667]
[0.33333333 0. ]
[0.66666667 0. ]
[0.33333333 1. ]
[0.66666667 1. ]
[1. 0.33333333]
[1. 0.66666667]
[0.48987551 0.53023763]
[0.43898046 0.76879765]
[0.70260457 0.70541771]
[0.23823447 0.57580349]
[0.30488903 0.35751012]
[0.7335183 0.42800646]
[0.52102626 0.34589035]
[0.80431355 0.19597677]
[0.19985633 0.8004077 ]
[0.44618858 0.18491763]
[0.84231781 0.84302109]
[0.21688219 0.17515222]
[0.63434267 0.23095824]]
三角形陣列:
[(4, 0, 23), (0, 6, 23), (6, 21, 23), (6, 7, 21), (21, 16, 23), (18, 16, 21), (12, 16, 18), (12, 15, 16), (15, 4, 16), (16, 4, 23), (5, 4, 15), (5, 15, 20), (1, 5, 20), (8, 1, 20), (13, 8, 20), (9, 8, 13), (15, 13, 20), (12, 13, 15), (14, 12, 17), (13, 12, 14), (9, 13, 14), (9, 14, 22), (3, 9, 22), (11, 3, 22), (14, 11, 22), (11, 14, 17), (10, 11, 17), (10, 17, 19), (17, 12, 18), (18, 21, 24), (17, 18, 24), (19, 17, 24), (7, 19, 24), (21, 7, 24), (7, 2, 19), (2, 10, 19)]
我寫的代碼:
nodes = np.asarray(convert(read_file("d2.txt"), float))
x, y = np.degrees(nodes[:, 0]), np.degrees(nodes[:, 1])
v_numbers = np.asarray(convert(read_file("d1.txt"), int))
triang = Triangulation(x, y, v_numbers[0:25])
plt.figure()
plt.gca().set_aspect('equal')
plt.triplot(triang, 'go-')
plt.show()
有什么方法可以解決這個問題,或者其他庫是否存在允許獲得我想要的方法的方法?
uj5u.com熱心網友回復:
您不必提供三角形的索引:默認情況下,matplotlib 可以使用 a Delaunay triangulation(請參閱
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406723.html
標籤:
