Ray:
// data member
Vector3f Origin;
Vector3f Direction;
设Ray的起点 Origin 为 O(x0,y0,z0) , Direction 为 D⃗ (dx,dy,dz)
⎧⎩⎨x=x0+t∗dxy=y0+t∗dyz=z0+t∗dz
Sphere:
// data member
Vector3f Center;
float Radius;
球心 C(cx,cy,cz) , 半径 r
将Ray的方程带入球面方程:
(x0−cx+t∗dx)2+(y0−cy+t∗dy)2+(z0−cz+t∗dz)2=r