求向量与圆交点

这个题也是被T4专家暴虐的题,我直接直线然后delta。。。跟高中数学一样,大佬叫我用向量的方式还是啥做,就是不要解方程,结果还是没想出来。后来把这个题分享给一个师兄,他刚好在一篇讲光线追踪的论文看到然后拿给我看,书中是球面不是圆,都差不多,下面按我的理解写一下。

首先三维空间下,假设圆心O(a,b,c),半径为R,那么球可以定义为(x-a)*(x-a)+(y-b)*(y-b)+(z-c)*(z-c) = R*R;如果有任意一点P(x,y,z),如果他在球面上,则|PO| = R,相当于dot(OP,OP) = dot(P-O,P-O) = R*R;如果有向量p(t) = A + B*t与球相交,则把向量带入dot(P-O,P-O) = R*R中得到dot(p(t)-O,p(t)-O) = R*R;然后带入、展开、直接delta,又回到高中数学。。。


本质其实都是一样的

猜你喜欢

转载自blog.csdn.net/qq_30858573/article/details/79641119