Algorithm
文章平均质量分 85
zaffix
这个作者很懒,什么都没留下…
展开
-
圆与矩形碰撞检测
圆与矩形的碰撞检测,假设矩形中心点v0, 上边中心点v1, 右边中心点v2, 圆心v, 圆半径r, 矩形半宽w1, 矩形半高h1,。v0为矩形的坐标系原点,(v0,v2)为矩形坐标系x轴,(v0,v1)为矩形坐标系y轴,圆心到矩形y轴距离为w2, 圆心到矩形x轴距离为h2,如图所示:根据图示可以很容易的写出圆与矩形的碰撞检测算法:#ifndef __CIRCLE_RECTANG原创 2014-05-05 21:41:30 · 10403 阅读 · 4 评论 -
圆与线段碰撞检测
圆与线段的碰撞检测算法利用了一个向量在另一个向量的投影的原理。假设向量p1p为v1, 向量p1p2为v2,p0为v1在v2上的投影点,则p1p0为v1在v2上的投影。两个向量点乘v1.dot(v2) = v1.length() * v2.length() * cos(theta) = x1 * x2 + y1 * y2,当v2经过单位化后,点乘的结果就变成的投影向量p1p0的长度,设为u。原创 2014-05-06 21:39:55 · 6315 阅读 · 0 评论 -
圆与三角形碰撞检测
圆与三角形之间的碰撞检测算法可以综合运用之前写过的基本图形间的碰撞检测算法。如果圆心在三角形内,则三角形与圆必然相交,转换为判断点在三角形内,参考:判断点是否在三角形内;如果圆与三角形任一条边相交,则三角形与圆必然相交,转换为圆与线段相交,参考:圆与线段碰撞检测;算法实现如下:#ifndef __CIRCLE_TIRANGLE_INTERSECTION_H__#define原创 2014-05-07 20:39:38 · 4203 阅读 · 0 评论 -
判断点是否在三角形内
判断点是否在三角形内,最常使用的算法是原创 2014-05-04 22:19:54 · 8072 阅读 · 1 评论 -
圆与扇形碰撞检测
圆与扇形的碰撞检测,以前用过一种算法是这样的:首先把扇形视作一个圆,排除圆与扇形圆不相交的情况,然后如果圆心在扇形两条边中间,则必然相交,剩下的就判断圆是否与两条边相交。这种算法用到了点与直线的关系,圆与线段的碰撞检测,圆与圆的碰撞检测等,算法清晰,实现起来比较简单,但只能适用于扇形夹角小于180度的情况。今天偶尔想到了一种新的算法:首先把扇形视作一个圆,排除圆与扇原创 2014-05-08 22:37:38 · 8994 阅读 · 2 评论