当前位置:   article > 正文

Python实现——带你纯纯手工做双线性曲面插值_曲面插值python

曲面插值python

一、曲面片的双线性插值实例

例1. 已知某曲面的四个角点坐标分别为( 0.1, 0.1 ), ( 0.1, 1.2 ), ( 1.1, 0.1 ), ( 1.1, 1.2 ),利用双线性插值完成该曲面插值,绘制插值插值之后的曲面片。

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from mpl_toolkits.mplot3d import Axes3D
  4. fig=plt.figure(figsize=(10,8))
  5. ax=plt.gca(projection='3d')
  6. x=np.array([0.1,0.1,1.1,1.1,0.1])
  7. y=np.array([0.1,1.2,0.1,1.2,0.1])
  8. z=np.array([1,0.3,1.9,0.6,1])
  9. figure=ax.plot(x[0:2],y[0:2],z[0:2],c='r')
  10. figure=ax.plot(x[1:3],y[1:3],z[1:3],c='y')
  11. figure=ax.plot(x[2:4],y[2:4],z[2:4],c='b')
  12. figure=ax.plot(x[3:5],y[3:5],z[3:5],c='g')
  13. plt.show()

运行结果如下:

 2)绘制利用曲面片内部插值点生成的网格曲面片

  1. x_=np.arange(0,1.3,0.1)
  2. y_=np.arange(0,1.3,0.1)
  3. X,Y=np.meshgrid(x_,y_)
  4. x1=x[0]
  5. x2=x[2]
  6. y1=y[0]
  7. y2=y[1]
  8. z1=z[0]
  9. z2=z[2]
  10. z3=z[1]
  11. z4=z[3]
  12. x2_1=x2-x1
  13. y2_1=y2-y1
  14. Y_1=Y-y1
  15. X_1=X-x1
  16. Z=(Y_1*X_1*(z1-z2-z3+z4))/(x2_1*y2_1)+(Y_1*(z3-z1))/y2_1+(X_1*(z2-z1))/x2_1+z1
  17. fig=plt.figure(figsize=(10,8))
  18. ax=fig.gca(projection='3d')
  19. ax.plot_surface(X,Y,Z)
  20. ax.view_init(15,-25)
  21. ax.set_xlabel('x')
  22. ax.set_ylabel('y')
  23. ax.set_xlim(-3,3)
  24. ax.set_ylim(-1,1.5)
  25. plt.show()

运行结果:

 3)增加外部插值点之后得到的插值曲面

  1. x_=np.arange(-0.6,1.6,0.1)
  2. y_=np.arange(-0.6,1.6,0.1)
  3. X,Y=np.meshgrid(x_,y_)
  4. x1=x[0]
  5. x2=x[2]
  6. y1=y[0]
  7. y2=y[1]
  8. z1=z[0]
  9. z2=z[2]
  10. z3=z[1]
  11. z4=z[3]
  12. x2_1=x2-x1
  13. y2_1=y2-y1
  14. Y_1=Y-y1
  15. X_1=X-x1
  16. Z=(Y_1*X_1*(z1-z2-z3+z4))/(x2_1*y2_1)+(Y_1*(z3-z1))/y2_1+(X_1*(z2-z1))/x2_1+z1
  17. fig=plt.figure(figsize=(10,8))
  18. ax=fig.gca(projection='3d')
  19. ax.plot_surface(X,Y,Z)
  20. ax.view_init(15,-25)
  21. ax.set_xlabel('x')
  22. ax.set_ylabel('y')
  23. ax.set_xlim(-3,3)
  24. ax.set_ylim(-1,1.5)
  25. plt.show()
  26. plt.show()

 运行结果:

 

大家七夕节快乐呀!!呱呱呱

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/803811
推荐阅读
相关标签
  

闽ICP备14008679号