数学与算法应用
日西月东
间歇性踌躇满志,持续性混吃等死。
展开
-
用数学方法解决工程问题系列(一) 在Winform里画旋转矩形
最近项目上设计了一套自动化小车的交通控制方案,其中最主要的是行进锁闭区的分配(包括直行、转弯、斜行、U型转弯等)和车辆防撞设计。为了更直观地检验方案的输出、演示方案的设计效果,花了点时间做了一套UI界面,效果是这样的:其中蓝色有数字在身上的是自动小车,深色一头为车头。黄色为申请的锁闭区,也即当前车速下的安全锁定区域。车辆直行时:车辆转弯时:车辆的实时信息:下面分开几篇介绍其中的主要思路和核心代码。本原创 2016-03-18 14:29:40 · 3282 阅读 · 0 评论 -
用数学方法解决工程问题系列(二) 两个矩形(多边形)的碰撞检测
关于碰撞检测,喜欢深入探究的同学可以去书店买书看,网上当然也有很多资源可以参考,这里只贴出代码,供C#开发的同学参照。以下代码中,AABBvsAABB()是给不倾斜的矩形判断碰撞时调用的,OBBvsOBB则是给任意角度矩形判断碰撞时使用。public class OBBCollisionDetect { /// <summary> /// AABB 碰撞检测原创 2016-03-18 14:48:48 · 1724 阅读 · 0 评论 -
用数学方法解决工程问题系列(三) 判断任意给定一点是否在多边形内
项目里有这样一个需求,需要把一组矩形合并成一个多边形,这个多边形正好把所有矩形包在里面,而且是最小多边形。这里面尝试了好几种方案,不过每一种方案里都有这样一个步骤,判断给定的点在不在给定的矩形区域内。因为这是一个被频繁调用的方法,所以需要找出最优的实现。最先尝试的是使用内角和法,将这个在网上有详细说明和C++代码,改成C#代码如下: Line[] lineArray = n原创 2016-03-23 07:29:38 · 826 阅读 · 1 评论 -
用数学方法解决工程问题系列(四) 计算包围一组多边形的几何形状
现在要开始解决问题了。我们的输入是一组连续的矩形,如下图橘黄色所示:这些矩形表示的是这个小车的路线上需要连续锁定的区域。这些小框是怎么算出来的暂且不在这里讨论。如果有一只蚂蚁替我们沿着这组矩形框的边缘走的话,它会走出像这样一个边界线框出来:这个不规则多边形框正好能把一开始的矩形框包围住,如下所示:注意右上角看起来并没有包住,露出了一个角出来,不过没关系,我们有很多办法把这个包围圈弄得更精确,只是需要原创 2016-03-24 20:54:47 · 2666 阅读 · 0 评论 -
P2P网络Chord环的构造
画出m=4的带弦Chord环的示意图,图中实际存在的节点NodeID分别为0、3、11、14,试: (1) 给出每个节点的finger table; (2) 描述NodeID为5的新节点从节原创 2016-11-15 16:19:19 · 4731 阅读 · 2 评论