

３D空間で直線と球の交点を求めるための直線の式を任意の２点から求め、描写したいのですが、どうプログラミングすればいいですか？  
２Dでの直線は式から描写することが可能でした。  
３Dでの直線の式は`y = ((x-xp)/a - (z-zp)/c)*b -yp`だと思います。

[code]

    import numpy as np
    import matplotlib.pyplot as plt
    
    def main():
        x = np.linspace(0,3,4)  # xの値域(0, 1, 2, 3)
        y = x + 1               # 直線の式
        plt.plot(x,y,"r-")      # 直線を引く
        plt.show()              # グラフ表示
    
    if __name__ == '__main__':
        main()
    
[/code]


CC BY-SA 4.0
2018-10-16T13:05:31.583
49357
2019-03-15T10:02:00.407
2018-10-17T00:58:26.990
23994
28714
question
python python3 matplotlib numpy
三次元空間で直線を引き球との交点を求めたい


mpl_toolkitsの中にmplot3dという3D描画用の機能が含まれています。

<https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html>

これを利用して、3Dの球体を `plot_surface` により描画したのち直線を引くというアプローチでいかがでしょうか。


CC BY-SA 4.0
2018-10-17T01:35:50.747
49366
2018-10-17T01:35:50.747
29826
49357
answer