matplotlibにベジェサーフェスをプロットしようとしている。私はx、y、zの関数を持っています(私はそれらをタイプしませんでした。sympyは自動的にそれらを生成しました)が、コードを実行するたびに空白のプロットが得られます。ちなみに、px、py、pzは制御点の行列です。私が間違っていたことと正しいものを教えてもらえますか?あるいは、パイソンを使用してベジェサーフェスをプロットする別の方法を提案しますか?pythonベジェサーフェスプロットに問題がある - 空のプロットを返す。
fig = plt.figure()
ax = fig.gca(projection='3d')
u = np.linspace(0, 1, 10)
v = np.linspace(0, 1, 10)
x = px[0][0]*u**3*v**3 + px[0][1]*3*u**3*v**2*(-v + 1) + px[0][2]*3*u**3*v* (-v + 1)**2 + px[0][3]*u**3*(-v + 1)**3 + \
px[1][0]*3*u**2*v**3*(-u + 1) + px[1][1]*9*u**2*v**2*(-u + 1)*(-v + 1) + px[1][2]*9*u**2*v*(-u + 1)*(-v + 1)**2 + \
px[1][3]*3*u**2*(-u + 1)*(-v + 1)**3 + px[2][0]*3*u*v**3*(-u + 1)**2 + px[2][1]*9*u*v**2*(-u + 1)**2*(-v + 1) + \
px[2][2]*9*u*v*(-u + 1)**2*(-v + 1)**2 + px[2][3]*3*u*(-u + 1)**2*(-v + 1)**3 + px[3][0]*v**3*(-u + 1)**3 + \
px[3][1]*3*v**2*(-u + 1)**3*(-v + 1) + px[3][2]*3*v*(-u + 1)**3*(-v + 1)**2 + px[3][3]*(-u + 1)**3*(-v + 1)**3
y = py[0][0]*u**3*v**3 + py[0][1]*3*u**3*v**2*(-v + 1) + py[0][2]*3*u**3*v*(-v + 1)**2 + py[0][3]*u**3*(-v + 1)**3 +\
py[1][0]*3*u**2*v**3*(-u + 1) + py[1][1]*9*u**2*v**2*(-u + 1)*(-v + 1) + py[1][2]*9*u**2*v*(-u + 1)*(-v + 1)**2 + \
py[1][3]*3*u**2*(-u + 1)*(-v + 1)**3 + py[2][0]*3*u*v**3*(-u + 1)**2 + py[2][1]*9*u*v**2*(-u + 1)**2*(-v + 1) + \
py[2][2]*9*u*v*(-u + 1)**2*(-v + 1)**2 + py[2][3]*3*u*(-u + 1)**2*(-v + 1)**3 + py[3][0]*v**3*(-u + 1)**3 + \
py[3][1]*3*v**2*(-u + 1)**3*(-v + 1) + py[3][2]*3*v*(-u + 1)**3*(-v + 1)**2 + py[3][3]*(-u + 1)**3*(-v + 1)**3
z = pz[0][0]*u**3*v**3 + pz[0][1]*3*u**3*v**2*(-v + 1) + pz[0][2]*3*u**3*v*(-v + 1)**2 + pz[0][3]*u**3*(-v + 1)**3 + \
pz[1][0]*3*u**2*v**3*(-u + 1) + pz[1][1]*9*u**2*v**2*(-u + 1)*(-v + 1) + pz[1][2]*9*u**2*v*(-u + 1)*(-v + 1)**2 +\
pz[1][3]*3*u**2*(-u + 1)*(-v + 1)**3 + pz[2][0]*3*u*v**3*(-u + 1)**2 + pz[2][1]*9*u*v**2*(-u + 1)**2*(-v + 1) + \
pz[2][2]*9*u*v*(-u + 1)**2*(-v + 1)**2 + pz[2][3]*3*u*(-u + 1)**2*(-v + 1)**3 + pz[3][0]*v**3*(-u + 1)**3 + \
pz[3][1]*3*v**2*(-u + 1)**3*(-v + 1) + pz[3][2]*3*v*(-u + 1)**3*(-v + 1)**2 + pz[3][3]*(-u + 1)**3*(-v + 1)**3
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
plt.show()
By私はDe Casteljauのアルゴリズムを使用することができましたが、得た後にポイントをプロットする方法がわかりませんでした –