机器视觉

自由、创新、技术、经典

随笔分类 -  算法

枚举器,很简单,也很复杂
摘要:实际工作中,遇到这样一个情况。我已经设计好了一个类,比如说是三角形类吧,有一些静态方法是针对三角形集合的,如下形式:class triangle{ // 顶点坐标 private point[] points; .... // 计算批量三角形的最大包含矩形 public static Rectangle CompMBR(List<triangle> ts); // 计算批量三角形的交点集合 public static List<Point> intersects(List<triangle> ts);}好了,现在需要派生一个类,假如说是等边三角形吧,我怎么设 阅读全文

posted @ 2008-12-02 17:28 塞伦盖蒂之鹰 阅读(300) 评论(0) 推荐(0)

JTS快速多边形联合
摘要:JTS快速多边形联合2007年11月17日原文:http://lin-ear-th-inking.blogspot.com/2007/11/fast-polygon-merging-in-jts-using.html多边形联合(Union)是空间处理(SpatialProcessing,即WPS中的P)中常见的一项需求。在实际应用中,多边形可能相互覆盖、重叠,这增大了这项处理的难度。到目前位置,JTS中通过两种方法可以完成这一操作: 迭代联合(Iterated Union): 通过迭代所有多边形,一个一个地做联合获得结果 缓冲联合(Buffer Union): 把所有多边形作为一个... 阅读全文

posted @ 2008-10-11 21:11 塞伦盖蒂之鹰 阅读(1468) 评论(0) 推荐(0)

给.NET链表(LinkedList<T>)增加归并排序
摘要:当你的数据结构是数组时,你可以选择上述任一种排序方法; 但当你的数据结构是链表时,归并排序比其它任何一种排序都要好。 这里介绍一种空间占用为O(1)的归并排序。 代码用了C#3.0的新特性-扩展方法(语法糖),若你用的是C#2.0,稍做改变即可。 阅读全文

posted @ 2008-10-05 07:38 塞伦盖蒂之鹰 阅读(2066) 评论(3) 推荐(0)

浮点精度问题及解决方案
摘要:关键字:Vector, float, precision, rounding algorithm最近在编写一个矢量运算库,将所有的平面CAD/CAM图形转化为矢量,采用树形组织:形状 -> 轮廓 -> 段,段有几种基本类型:直线,圆弧,Bezier等,在计算两个矢量集合的 交,并,减,异或操作时,遇到了严重的问题,该问题是由浮点数本身不精确造成的,例如:计算直线与圆弧的交点坐标后,反过来检查,你会发现,交点并没有落在直线上,或者交点到圆心距离并不相等。等等类似问题。并且该误差会随运算次数而累计。若用一个很小的阀值作为检查的附加条件,会带来大量的算法改动,并且在少数情况下还是会出错。 阅读全文

posted @ 2008-09-02 14:53 塞伦盖蒂之鹰 阅读(380) 评论(0) 推荐(0)

导航