1

我找到了其他人的示例,该示例展示了如何在 python 中绘制球体,但我很好奇是否有一个方程可以表示沿球体的各个纵向线。

示例:Python/matplotlib:绘制一个 3d 立方体、一个球体和一个向量?

示例:Python/matplotlib:绘制一个 3d 立方体、一个球体和一个向量?

# draw sphere
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x = np.cos(u)*np.sin(v)
y = np.sin(u)*np.sin(v)
z = np.cos(v)
ax.plot_wireframe(x, y, z, color="r")

我想要的是一个沿着球体运行并能够绘制它们的大圆方程。

类似于 Mathematica 中的这篇文章... https://mathematica.stackexchange.com/questions/16413/how-to-draw-a-great-circle-on-a-sphere

4

1 回答 1

0

数学堆栈交换中的某个人能够提供帮助。

椭圆方程不是解决这个问题的正确方法。Great Circles 有自己的方程式,这些方程式涉及以 3D 形式表示的复数。

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

    # equations for great cricles (longitduinal great circles)
    x = R * np.sin(theta[i]) * np.cos((1j / len(theta)) * np.pi * 2)
    y = R * np.sin(theta[i]) * np.sin((1j / len(theta)) * np.pi * 2)
    z = R * np.cos(theta[i])

    # takes the real components of the great circle equation to get the position coords in 3D space
    xr = x.real
    yr = y.real

拥有 (xr,yr) 之后,您可以使用围绕 z 轴的旋转矩阵来获得不同轨迹上的大圆圈。

简单地绘制(xr,yr,z)

于 2018-08-22T01:21:15.237 回答