質問: 球面と直線の交点 点p(px,py,pz)から方向ベクトル(x,y,z)にのびた直線が、原点o(0,0,0)、半径rの球の表面と交わる点qの座標を求めたいのですが、どなたか教えていただけないでしょうか。 o-p-qの三角形を作ると、辺opの長さ、辺oqの長さ(=r)と∠opqの角度は求まるので、余弦定理から辺pqの長さが求まります。 辺pqの長さに方向ベクトル(x,y,z)を掛ければ、ベクトルpqが求まるので、ベクトルop+ベクトルpq=ベクトルoqが求まると思うのですが、間違っているでしょうか。
回答: それで合っています。 ただ、pqの長さをtとおいて、座標で直接に2次方程式を作ったほうが計算が楽なようです。 (これでできる2次方程式は、ご質問にある余弦定理と全く同じ式になります。)