擅长:python、mysql、java
<p>您的问题是您没有使用<code>triangles</code>的<code>matplotlib.tri</code>选项。实际上,如果不在matplotlib中指定,则ParaView中存在的网格的连接性将丢失。事实上,您给matplotlib一个自由来呈现它想要的任何单元,当您知道三角形网格的连通性时,这显然是不正确的。可以使用以下命令提取三角形网格的连接性:</p>
<pre class="lang-py prettyprint-override"><code>cell_connecitivty_matrix = []
for i in range(vtOut.GetNumberOfCells()):
assert vtkOut.GetCell(i).GetNumberOfPoints() == 3
cell_connecitivty_matrix.append(vtkOut.GetCell(i).GetPointIds())
cell_connecitivty_matrix = np.array(cell_connecitivty_matrix, dtype=np.float).reshape((vtOut.GetNumberOfCells(),3))
#plot triangles with their connectivity matrix
plt.triplot(coords[:, 0], coords[:, 1], triangles=cell_connectivity_matrix)
</code></pre>