0

複雑な 3D 形状から、三角形に対応する形状の平面を取得しました。

この結果を 2D 配列にエクスポートしたいと思います。私はこれを試しました:

import numpy as np
from shapely.geometry import Polygon
import skimage.draw as skdraw
import matplotlib.pyplot as plt

x = [...]
y = [...]
z = [...]
levels = [....]

cs = plt.tricontourf(x, y, triangles, z, levels=levels)

image = np.zeros((100,100))

for i in range(len(cs.collections)):
    p = cs.collections[i].get_paths()[0]
    v = p.vertices
    x = v[:,0]
    y = v[:,1]
    z = cs.levels[i]

    # to see polygon at level i
    poly = Polygon([(i[0], i[1]) for i in zip(x,y)])
    x1, y1 = poly.exterior.xy
    plt.plot(x1,y1)
    plt.show()


    rr, cc = skdraw.polygon(x, y)
    image[rr, cc] = z

plt.imshow(image)
plt.show()

残念ながら、輪郭の頂点からは、レベルごとに 1 つのポリゴンのみが作成され (私が思うに)、最後に 2D 配列の輪郭の誤った投影が生成されます。

2D配列でcontourfを正しく表現するアイデアはありますか?

4

1 に答える 1