怎样用Python将三维空间中的多个点投影到任意的一个平面上。

怎样将三维空间中的一些点投影到任意平面中,平面的法向量为(a,b,c),给a b c 赋值。

img


fig = plt.figure()
ax1 = plt.axes(projection='3d')
x = [-s0 * 250, s0 * 250] #投影的线的两个点的坐标,这里用的是过原点的直线
y = [-s1 * 250, s1 * 250]
z = [-s2 * 250, s2 * 250]
figure = ax1.plot(x,y,z,c='g') 
for i in range(0,75):

    d = x1[i][0]*s0+ x1[i][1]*s1+x1[i][2]*s2
    t = d/(s1*s1 + s2*s2 +s0*s0)
    x3 = s0*t
    y3 = s1*t
    z3 = s2*t
    ax1.scatter(x3, y3, z3, s=20, c='r', depthshade=True)
for i in range(0, 75):
    d = x2[i][0] * s0 + x2[i][1] * s1 + x2[i][2] * s2
    t = d / (s1 * s1 + s2 * s2 + s0 * s0)
    x3 = s0 * t
    y3 = s1 * t
    z3 = s2 * t
    ax1.scatter(x3, y3, z3, s=20, c='b', depthshade=True)


参考