将球体表面绘制在圆上

时间:2013-06-25 10:02:27

标签: python plot geometry geometry-surface

我正在尝试创建一个旋转球体的动画但是只能看到该物体表面的2π,因此我需要能够将区域(分为经度和纬度)绘制到圆上并定义它们通过参数使得它们可以使用两个角度(来自球形极坐标的θ和φ)来改变以进行旋转。

我尝试了一些事情,但唯一一次做出任何有价值的事情就是使用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的长度相同,所以我看不到定义两个角度的方法(这个图只在一个平面内旋转。)

由于我在编码方面的经验并不是特别广泛,因此我可能会犯错误。制作这样的情节最好用什么?谢谢你的时间。

0 个答案:

没有答案