资讯专栏INFORMATION COLUMN

通过Python绘制九种二次曲面

CoderDock / 1172人阅读

摘要:二次曲面中绘制三维图需要将坐标系声明为。

二次曲面

python中绘制三维图需要将坐标系声明为3d

球面方程为

x 2 + y 2 + z 2 = R 2 x^2+y^2+z^2=R^2 x2+y2+z2=R2

写为极坐标形式为

x = R sin ⁡ θ cos ⁡ φ y = R sin ⁡ θ sin ⁡ φ z = R cos ⁡ θ /begin{aligned} x&=R/sin/theta/cos/varphi// y&=R/sin/theta/sin/varphi// z&=R/cos/theta/end{aligned} xyz=Rsinθcosφ=Rsinθsinφ=Rcosθ

R = 1 R=1 R=1,则画图为

代码如下

>>> import matplotlib.pyplot as plt>>> import numpy as np>>> theta = np.arange(0,6.4,0.1).reshape(64,1)>>> phi = np.arange(0,3.2,0.1).reshape(1,32)>>> x = np.sin(theta)*np.cos(phi)>>> y = np.sin(theta)*np.sin(phi)>>> z = np.cos(theta)>>> ax = plt.gca(projection="3d")>>> ax.plot_surface(x,y,z)<mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x000001CECF13A730>>>> plt.show()

二次曲面共有九种,代码均与椭球曲面类似,为了加强立体感,可在画图的时候设置颜色映射,下列各图部分用到

from matplotlib import cm#...ax.plot_surface(x,y,z,cmap=cm.coolwarm)
a,b,c均为1时的曲面
椭圆锥面
x 2 a 2 + y 2 b 2 − z 2 c 2 = 0 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=0 a2x2+b2y2c2z2=0
椭球面
x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}+/frac{z^2}{c^2}=1 a2x2+b2y2+c2z2=1
单叶双曲面
x 2 a 2 + y 2 b 2 − z 2 c 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=1 a2x2+b2y2c2z2=1
双叶双曲面
x 2 a 2 + y 2 b 2 − z 2 c 2 = − 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}-/frac{z^2}{c^2}=-1 a2x2+b2y2c2z2=1
椭圆抛物面
z = x 2 a 2 + y 2 b 2 z=/frac{x^2}{a^2}+/frac{y^2}{b^2} z=a2x2+b2y2
双曲抛物面
z = x 2 a 2 − y 2 b 2 z=/frac{x^2}{a^2}-/frac{y^2}{b^2} z=a2x2b2y2
椭圆柱面
x 2 a 2 + y 2 b 2 = 1 /frac{x^2}{a^2}+/frac{y^2}{b^2}=1 a2x2+b2y2=1
双曲柱面
x 2 a 2 − y 2 b 2 = 1 /frac{x^2}{a^2}-/frac{y^2}{b^2}=1 a2x2b2

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122207.html

相关文章

  • Python做地图投影 - 多面孔的世界

    摘要:如需转载,请在显著位置注明个人微信公众号为什么要做地图投影简而言之,地球表面是一个三维的曲面,在曲面上进行测量是非常困难的。拓展同一个世界,不同的面孔链接在不同投影下的这个世界。。。 (如需转载,请在显著位置注明个人微信公众号stdrei) 为什么要做地图投影 简而言之,地球表面是一个三维的曲面,在曲面上进行测量是非常困难的。不信你拿个地球仪量一下两点的距离或者计算个夹角试试。将三维的...

    widuu 评论0 收藏0
  • 万万没想到,Python 竟能绘制出如此酷炫的三维图

    摘要:作者通常我们用绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的这些图怎么做出来呢今天就来分享下如何一步步绘制出三维矢量图。八面体我们先以下面这个八面体为例。 showImg(https://segmentfault.com/img/remote/1460000019800947); 作者 | Jay Alammar 通常我们用 Python 绘制的都是二维平面图,但有...

    mmy123456 评论0 收藏0
  • 3DSDK-NURB曲线曲面

    摘要:导语非均匀有理样条,通常简称为实际上已经成为利用计算机处理集合信息时用于形状的表示设计和数据交换的工业标准。 导语 非均匀有理B样条,通常简称为NURBS(Non-Uniform Rational B-Splines),实际上已经成为利用计算机处理集合信息时用于形状的表示、设计和数据交换的工业标准。许多国内和国际标准,如IGES,STEP和PHIGS都把NURBS作为集合设计的一个强有...

    williamwen1986 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<