我对编程非常陌生,但我决定接受一个有趣的项目,因为我最近学会了如何用参数形式表示一个球体.当交叉三个球体时,有两个交叉点是不同的,除非它们仅在一个奇点处重叠.
球体的参数表示:

我的代码是根据Python/matplotlib的答案修改的:绘制一个三维立方体,一个球体和一个向量?,增加了指示x,y和z原点以及球体半径的能力.许多类似的问题都是用C++,Java和C#编写的,我根本无法理解(我几乎不知道我在做什么,所以对我很轻松).
我的代码:
import numpy as np
def make_sphere_x(x, radius):
u, v = np.mgrid[0:2 * np.pi:5000j, 0:np.pi:2500j]
x += radius * np.cos(u) * np.sin(v)
return x
def make_sphere_y(y, radius):
u, v = np.mgrid[0:2 * np.pi:5000j, 0:np.pi:2500j]
y += radius * np.sin(u) * np.sin(v)
return y
def make_sphere_z(z, radius):
u, v = np.mgrid[0:2 * np.pi:5000j, 0:np.pi:2500j]
z += radius * np.cos(v)
return z
#x values
sphere_1_x = make_sphere_x(0, 2)
sphere_2_x = make_sphere_x(1, 3)
sphere_3_x = make_sphere_x(-1, …Run Code Online (Sandbox Code Playgroud)