引子
在 Collision Detection :Polygon 中主要介绍了多边形相关的碰撞检测,接着来看看三角形的情况。三角形同样属于多边形,因此,多边形的方法对三角形都适用。在这里探讨一下另外一种思路。
以下示例未做兼容性检查,建议在最新的 Chrome 浏览器中查看。
Triangle/Point
这是示例页面。
三角形与点的碰撞检测,可以从面积的角度进行切入,看下面的一张图:
如果点在三角形内,那么与三角形顶点相连,切割成了三部分,这三部分的面积之和,如果跟三角形面积相等,那么就可以说明发生了碰撞。
/**
* 叉积 用符号 x 表示
* V 矢量
* W 矢量
* |V| |W| 矢量的模,就是线段实际长度
* θ V 与 W 之间的角度
*/
V x W = |V| * |W| * sin(θ)
/**
* 计算面积公式
* a 底
* h 高
*/
S</