算法中的基础几何知识-叉积,线段,点

1. 叉积(wikipedia):两个向量的叉积是 \mathbf{a} \times \mathbf{b} = a b \sin \theta \ \mathbf{n},表示两个向量组成的平行四边形的面积,  a(x1, y1) X b(x2, y2) = x1y2 – y1x2


2. 点是否在线段上。

先判断是否三点共线:假设判断点p是否在线段e(u,v), p,u,v 是三个点。首先构造pu,pv 向量,然后pu和pv的叉积为0,因为这是因为三点共线的话这两个向量夹角为0,所以叉积为0.

然后再判断是点是否在线段上:已经三点共线了,那么如果p在uv中间,必须有: (p.x-u.x)*(p.x-v.x)<0 || (p.y-u.y)*(p.y-v.y)<0 . 这就完成了点是否在线段上的判断。


3. 线段是否overlap(不包括共端点的情况)

假设是线段uv和线段pq

a. 计算u是否和pq共线,v是否和pq共线。都共线的话说明两条线段在同一条直线上。

b. 判断点u,v是否有一个在线段pq上(利用2的方法)

c. 如果上面两个都满足了,说明overlap,否则没有overlap



的基本运算 1. 平面上两之间距离 1 2. 判断两是否重合 1 3. 矢量乘 1 4. 矢量乘 2 5. 判断是否在线段上 2 6. 求一饶某旋转后的坐标 2 7. 求矢量夹角 2 ㈡ 线段及直线的基本运算 1. 线段的关系 3 2. 求线段所在直线垂线的垂足 4 3. 线段的最近 4 4. 线段所在直线的距离 4 5. 到折线集的最近距离 4 6. 判断圆是否在多边形内 5 7. 求矢量夹角余弦 5 8. 求线段之间的夹角 5 9. 判断线段是否相交 6 10.判断线段是否相交但不交在端处 6 11.求线段所在直线的方程 6 12.求直线的斜率 7 13.求直线的倾斜角 7 14.求关于某直线的对称 7 15.判断两条直线是否相交及求直线交 7 16.判断线段是否相交,如果相交返回交 7 ㈢ 多边形常用算法模块 1. 判断多边形是否简单多边形 8 2. 检查多边形顶的凸凹性 9 3. 判断多边形是否凸多边形 9 4. 求多边形面 9 5. 判断多边形顶的排列方向,方法一 10 6. 判断多边形顶的排列方向,方法二 10 7. 射线法判断是否在多边形内 10 8. 判断是否在凸多边形内 11 9. 寻找集的graham算法 12 10.寻找集凸包的卷包裹法 13 11.判断线段是否在多边形内 14 12.求简单多边形的重心 15 13.求凸多边形的重心 17 14.求肯定在给定多边形内的一个 17 15.求从多边形外一出发到该多边形的切线 18 16.判断多边形的核是否存在 19 ㈣ 圆的基本运算 1 .是否在圆内 20 2 .求不共线的三所确定的圆 21 ㈤ 矩形的基本运算 1.已知矩形三坐标,求第4坐标 22 ㈥ 常用算法的描述 22 ㈦ 补充 1.两圆关系: 24 2.判断圆是否在矩形内: 24 3.到平面的距离: 25 4.是否在直线同侧: 25 5.镜面反射线: 25 6.矩形包含: 26 7.两圆交: 27 8.两圆公共面: 28 9. 圆直线关系: 29 10. 内切圆: 30 11. 求切: 31 12. 线段的左右旋: 31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值