前提・実現したいこと
お世話になります。
3次元(x,y,z)の点群データから、ScipyのDelaunay関数を用いてx,yを参照してドロネー三角形分割を作ることが出来ました。
その後、Matplotlibを使用してz座標を与えて3D平面を可視化することが出来ました。
(下記ソースコードはstackoverflowよりお借りしたサンプルコードです。元は2系です。)
この時、任意のx,y座標を与えてこの平面と交わる時のz座標を取得したいのですが、方法がわかりません。
ご教授いただければ幸いです。よろしくお願いいたします。
該当のソースコード
Python
1 2import numpy as np 3import matplotlib.pyplot as plt 4from mpl_toolkits.mplot3d import Axes3D 5import matplotlib.tri as mtri 6from scipy.spatial import Delaunay 7 8# u, v are parameterisation variables 9u = np.array([0,0,0.5,1,1]) 10v = np.array([0,1,0.5,0,1]) 11 12x = u 13y = v 14z = np.array([0,0,1,0,0]) 15 16# Triangulate parameter space to determine the triangles 17#tri = mtri.Triangulation(u, v) 18tri = Delaunay(np.array([u,v]).T) 19 20print('polyhedron(faces = [') 21#for vert in tri.triangles: 22for vert in tri.simplices: 23 print('[%d,%d,%d],' % (vert[0],vert[1],vert[2]),) 24print('], points = [') 25for i in range(x.shape[0]): 26 print('[%f,%f,%f],' % (x[i], y[i], z[i]),) 27print(']);') 28 29 30fig = plt.figure() 31ax = fig.add_subplot(1, 1, 1, projection='3d') 32 33# The triangles in parameter space determine which x, y, z points are 34# connected by an edge 35#ax.plot_trisurf(x, y, z, triangles=tri.triangles, cmap=plt.cm.Spectral) 36ax.plot_trisurf(x, y, z, triangles=tri.simplices, cmap=plt.cm.Spectral) 37 38 39plt.show() 40

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。