I`m 2つの多角形のクロスオーバーの差を示しLinearRingプロットしようとしている:DIFプロットしたいI`dパイソン:LinearRingのX、Y、Z値を取得
import mpl_toolkits.mplot3d as a3
import matplotlib.pyplot as plt
from shapely.geometry import Polygon
fig = plt.figure()
ax = Axes3D(fig)
poly1 = Polygon([(220.0, 780, 500), (840, 780, 500), (840, 180, 500), (220.0, 180, 500)])
poly2 = Polygon ([(320.0, 380, 500), (740, 380, 500), (740, 180, 500), (320.0, 180, 500)])
dif = poly1.difference(poly2)
をしかし、使用している場合:
私はそのためDIFのx、y、z座標を取得し、それらをプロットしてみてください。
top1 = a3.art3d.Poly3DCollection([dif],alpha=0.6)
を私は「『ポリゴン』オブジェクトが反復可能ではありませんTypeError例外」と言ってerrosを取得しますしかし、私はx、yを得ることしかできなかったもの。テストのために、私は現在、フィードにZ値てmanualy:
z= [500,500,500,500,500,500,500,500]
x,y = a.exterior.xy
zipped = list(zip (x,y,z))
top1 = a3.art3d.Poly3DCollection([zipped],alpha=0.6)
top1.set_color('wheat')
top1.set_edgecolor('k')
ax.add_collection3d(top1)
ax.set_xlim(0, 1000)
ax.set_ylim(0, 1000)
ax.set_zlim(0, 1000)
plt.show()
を私はその後、私は後の午前プロットを得るが、I`mはDIFをプロットする簡単な方法を探しています。もしあれば、このコードで、
top1 = a3.art3d.Poly3DCollection([dif.exterior.coords],alpha=0.6)
は用心しても、あなたのソリューションで、あなたは、多角形の内部リングを失うされていますexterior
で