在曲面图中截断半个圆环

我试图使用matplotlib.


到目前为止,这是我的方法:


import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D


n = 100


# theta: poloidal angle; phi: toroidal angle

theta = np.linspace(0, 2.*np.pi, n)

phi   = np.linspace(0, 2.*np.pi, n)

theta, phi = np.meshgrid(theta, phi)


# R0: major radius; a: minor radius

R0, a = 2., 1.


# torus parametrization

x = (R0 + a*np.cos(theta)) * np.cos(phi)

y = (R0 + a*np.cos(theta)) * np.sin(phi)

z = a * np.sin(theta)


# "cut-off" half of the torus

x[x>0] = np.nan


fig = plt.figure()

ax1 = fig.add_subplot(111, projection='3d')

ax1.set_zlim(-3,3)

ax1.plot_surface(x, y, z, rstride=5, cstride=5,)


# elev: elevation angle in z-plane

# azim: azimuth angle in x,y plane

ax1.view_init(elev=15, azim=0)


plt.show()

这样做,确实给了我半个圆环,但其中一个切割面不清楚,如图所示

http://img.mukewang.com/6162977000019ca403560295.jpg

任何想法如何制作干净的切割表面?


桃花长相依
浏览 163回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python