我想作的是 判断 球与线段相交,如果相交就显示不同的颜色
有没有相关的代码 谢谢
应该好做,求出球心与线段两个端点的距离,如果两个距离中有小于求的半径者,那肯定有相交。
把线段参数化:
P = P0 + t * (P1-P0) 显然 t为0到1的时候, 点在线段上
计算
P和球心之间的距离 d : 空间的距离公式
看 t等于多少的时候 d = 球半径
如果t在0,1范围内,就相交否则不相交
上面是一个公式解决所有情况的办法
你还可以用下面的办法解决
1 线段两个端点是否有某个在球心内,在则认为相交,返回
2 空间的点到直线距离公式,计算球心到直线的距离
如果距离大于半径肯定不相交返回
计算球心在直线上的投影是否在两个端点之间,在则相交,否则不相交
投影的计算可以用空间向量的点乘方式来解决:
*(P1-P0) > (Ps-P0) * (P1-P0) 不相交
(Ps-P0) * (P1-P0) < 0 不相交
否则相交
建议看《实时计算机图形学》第二版,里面有很详细的各种情况的求交