![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
文章平均质量分 57
ivy_0709
作者不懒哦,有文章被点赞了或关注了都会被作者重新编辑,进行优化补充,方便后人更好的理解和阅读。
文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信。
少点收藏文章,看完觉得有用再收藏。
展开
-
点到线段的最短距离——矢量法
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。矢量法推导:求点P到线段AB的最短距离。分成以下三种情况(a),(b),(c)。所以可以先根据计算出r的值,进而对应计算A点 B点 C点 和 P点之间的距离即可。特殊情况:当P在线段AB上:计算出来r仍然是 1>r>0, P点即C点,PC的距离d = 0;当P在线段AB端点或其...原创 2018-04-02 15:29:24 · 18055 阅读 · 6 评论 -
空间中直线段和三角形的相交算法
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。源码// 空间点 sp 起点 sq终点// 三角形空间点 a b c // 输出参数 t static bool intersectSegmentTriangle(const float* sp, const float* sq, const float* a, con...原创 2018-05-08 10:27:14 · 10015 阅读 · 3 评论 -
光线与AABB包围盒的相交检测算法SlabMethod
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。原理下图是2D的情况,看 Inside-y-slab(光线在 y=ymin 和 y=ymax 的那段) 和Inside-x-slab(光线在 x=xmin 和 x=xmax 的那段)有没有重叠。如果有重叠部分,那么光线与包围盒相交。如何判断有没有重叠部分?假设已知射线的起点为Orig,射...原创 2018-04-27 20:23:42 · 3965 阅读 · 1 评论 -
判断两个凸多边形是否相交—SAT
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。介绍https://www.codeproject.com/Articles/15573/D-Polygon-Collision-Detection应用分离轴定理 SAT ,看是否能找到分离轴,如果能找到那么就是不相交。否则相交。利用点积的几何意义: 投影源码判断 polya 和 polyb 两...原创 2018-04-26 16:39:14 · 4086 阅读 · 2 评论 -
判断点是否在多边形内(任意多边形)
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。方法思路:过这一点向右做一条水平射线,看这射线和多边形的几条边有交点。如果边的条数为奇数则说明点在多边形内。(也可过这点向左,向上,向下做一条射线)具体:对每一条边和点进行如下判断,看是否满足下面两个条件,若均满足,则定义此边和射线有交点。设边为vj->vi,点为 pt : 1)点p...原创 2018-04-13 13:58:14 · 6238 阅读 · 4 评论 -
判断两条线段是否相交以及求相交的交点坐标
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。方法一:线段AB 线段CD1)先对AB和CD线段的包围盒进行相交性检测,看是否 肯定不相交。2)再用叉积进行进一步判断相交可能性。令:a1 = (B点 - A点) x (D点 - A点) (叉积) a2 = (B - A) x (C - A) (叉积) a3 = (D ...原创 2018-04-12 18:03:22 · 13307 阅读 · 0 评论 -
三角形的重心坐标系
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。重心坐标系介绍 看懂中文维基百科的第一段。https://zh.wikipedia.org/wiki/%E9%87%8D%E5%BF%83%E5%9D%90%E6%A0%87 三角形重心坐标推导源码使用上面推导的公式计算系数是否大于等于0.bool dtClosestHeightPoi...原创 2018-04-12 11:53:15 · 8026 阅读 · 2 评论 -
求一个数取log2的较小的整数 Ilog2
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。举例:Ilog2(8) = 3Ilog2(15) = 3Ilog2(16) = 4思路:从二进制角度看 即 右移几位 以后为1(最高位)比如8 = 1000b, 右移3位15=1111b,右移3位16=10000b,右移4位源码:inline unsigned int dtIlog2(unsig...原创 2018-04-05 13:43:01 · 3500 阅读 · 0 评论 -
求一个数的临近的较大的2的整数次幂nextPow2
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。思路:目标数是2的幂次,转化成二进制思考,就是某一个位是1,其他位置都是零。比如第x位是1,其他位都是零,那么,此数就是2的(x-1)次幂,此数可以通过 第x-1位到第1位都设置为1,然后再加1得到。比如9的二进制表示 00001001(第4位为1),最接近9的目标值为 00010000(第5...原创 2018-04-04 10:48:46 · 4328 阅读 · 0 评论 -
三点确定一个圆的计算方法
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。 推导过程问题:求点p1 p2 p3三点确定的圆的 圆心c 和 半径r 。思路:为了方便求解,将坐标系原点平移到p1点。即新的p1坐标为(0,0),即p2 p3坐标同时减去p1坐标,假设新的p2新的坐标为(x2, y2),新的p3新的坐标(x3, y3)。再...原创 2018-04-11 12:17:56 · 19666 阅读 · 3 评论 -
判断多边形顺时针还是逆时针--根据多边形面积正负
最近在看recast&detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。问题:给出一个点序列,判断按这个点序列连接组成的多边形是逆时针还是顺时针。计算面积--鞋带公式:其中: 公式1【源码中所用的公式】 公式2 边的和【见参考中 overflow 链接】去掉上述计算S中的绝对值,让其有正负,判断逆顺: 点序为顺, 面积为负值。 ...原创 2018-04-10 16:44:15 · 6719 阅读 · 0 评论 -
计算绕原点旋转某角度后的点的坐标
问题:A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1) ,求x1 y1坐标用(x,y)和 theta 来表示方法一:设OA向量和x轴的角度为 alpha ,那么顺时针 转过 theta,后 OA1向量和x轴的角度为 (alpha - theta),使用圆的参数方程来表示:A的坐标可以表示为:\[\left\{ {\begin{array}{*{20}{c}} {x...原创 2018-05-15 11:43:48 · 39736 阅读 · 1 评论