我正在尝试创建一个球体旋转的动画,但只能看到该对象表面的 2π,因此我需要能够将区域(划分为经度和纬度)绘制到一个圆上并通过参数定义它们,例如可以使用两个角度(来自球极坐标的 theta 和 phi)更改它们以进行旋转。
我尝试了一些东西,但唯一一次有价值的事情是使用 tricontour:
import matplotlib.pyplot as plt
import matplotlib.tri as tri
import numpy as np
from math import *
r=1.0
N=360
circlexy = np.asarray([[r*cos(radians(i)), r*sin(radians(i))]
for i in np.arange(0,N,0.1)])
circlez = [r*(cos(radians(j)))*sin(radians(j))
for j in np.arange(0,N,0.1)]
x1 = circlexy[:,0]
y1 = circlexy[:,1]
z1=circlez
plt.figure()
plt.gca().set_aspect('equal')
plt.tricontourf(x1, y1, z1, 3)
plt.show()
但是,这个图不是很平滑,即使它是它也不是很有帮助,因为 z1 需要与 x1 和 y1 的长度相同,所以我看不到定义两个角度的方法(这个图只旋转一架飞机)。
我很可能在上面犯了错误,因为我在编码方面的经验并不是特别广泛。制作这样的情节最好用什么?感谢您的时间。