matplotlib/pyplotを使って円滑な円柱を作成したいと思います。私は、オンラインチュートリアルを適応し、次の最小限の例を作成しました:matplotlib plot_trisurfで隙間のないワイヤフレームを外す
from numpy import meshgrid,linspace,pi,sin,cos,shape
from matplotlib import pyplot
import matplotlib.tri as mtri
from mpl_toolkits.mplot3d import Axes3D
u,v = meshgrid(linspace(0,10,10),linspace(0,2*pi,20))
u = u.flatten()
v = v.flatten()
x = u
z = sin(v)
y = cos(v)
tri = mtri.Triangulation(u, v)
fig = pyplot.figure()
ax = fig.add_axes([0,0,1,1],projection='3d')
ax.plot_trisurf(x,y,z,triangles=tri.triangles,linewidth=0)
pyplot.show()
cylinderを生成します。ワイヤフレームを削除するにはlinewidth = 0に設定します。ただし、ワイヤフレームがギャップを埋めると仮定すると、三角形分割が(おそらく)間隔を置いているため、ワイヤフレームの「ゴースト」があります。これは、plot_trisurfに固有のように見える。なぜなら、これらのギャップが現れることなく線幅= 0に設定される他の3dプロットの例(例えば、using plot_surface)があるからである。それは
>Notes
> -----
> For a Triangulation to be valid it must not have duplicate points,
> triangles formed from colinear points, or overlapping triangles.
一つの部分的な解決策はちょうどワイヤーフレームを同じ色合いに着色するで述べているので、「完全に」のギャップを埋めるために可能ではないかもしれないようmtri.Triangulationを行う
?それはそうです私はこの問題を解決した後、表面に光源/シェーディングを追加したいので、私は正方形に戻ってきます。 これを行う方法はありますか?あるいは、誰かが別のアプローチを提案することができますか?助けてくれてありがとう。
私はそれを試みました。どうやらない。ありがとうございました。 – moo