球心在原点
已知线上一点LineStart,线方向LineDir。线上的点使用参数方程表示
P=LineStart+t∗LineDir,t∈R
如果圆心在原点,半径为R,则从圆心指向线上一点的向量就是P。
如果点在球上,在P 的模为R。即:
PdotP=R2
即
(LineStart+t∗LineDir)dot(LineStart+t∗LineDir)−R2=0
=>
LineDir(dot)LineDir∗t2+2∗LineDir(dot)LineStart∗t+LineStart(dot)LineStart−R2=0
二次方程系数:
a=LineDir(dot)LineDir
b=2∗LineDir(dot)LineStart
c=LineStart(dot)LineStart−R2
利用求根公式可以求出t.
球心不在原点
只需让LineStart=LineStart−Center即可。