求算法,二维坐标点估算排列间距

slchin 2011-04-24 08:01:02
有两组交叉网格线,等间距的。我得到一些网格线交点坐标,怎样通过这些坐标求得网格线的横竖间距。可以设定最小间距值。

这些点当然有一点点误差,不是都严格落在交叉点上,甚至有个别误差很大的需要忽略。这些点是随机排列的,不是一排排一列列按顺序的,而且中间很多交叉点可能缺了。

交叉线也不一定跟x,y坐标完全平行,可能有一点偏角。
...全文
206 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
slchin 2011-04-28
  • 打赏
  • 举报
回复
估计最大计算16行16列的点数应该差不多,但是这样的话所有两点间的距离数有256x255/2=32640,算上行列总共达6万多个,这么多数据那不算死人啊,不对,那不算死我的cpu啊。我是想能不能将所有点先按行列排序,然后只计算相邻两点的距离就好了,因为这时得到的距离绝大多数都是最小间距。问题是我还没想好怎么来排序,因为误差同一行的点Y坐标并不统一,而且如果网格线跟屏幕坐标有偏角的话可能第二行尾甚至越过第一行头。
当所有距离统计出来后,应该在最小间距整数倍的地方出现多个正态分布,怎样能求得这些正态分布的顶点?求得个顶点后它们的最大公约数才是正解,而不是第一个顶点。还有一个问题怎样求它们的最大公约数?比如说得到3个距离值21, 29, 42,它们的最小公约数应该是10才对。
icerainfc522 2011-04-27
  • 打赏
  • 举报
回复
最邻近算法,因为是网格,按题目意思,同一个交叉点最多只提供一个数值(可能有偏差),因此可以计算任意两个点间距离理论上最小值等于网格间距,所以可以计算所有给定点间距离,滤去小于给定最小间距部分(有些点偏差太大,题目说有给定最小间距),然后感兴趣的话可以按概率分布(正态分布等)来再滤掉5%(数值自个定)的最小值,(就像比赛中经常去掉的最低分、最高分,尽量防止偏差过大的点被引入),此时剩下的最小值就是网格间距
slchin 2011-04-26
  • 打赏
  • 举报
回复
我只需要求得近似的结果就行了,类似线性回归那样。然后把求得的网格线在屏幕上显示出来,如果用户高兴的话可以手动微调一下。
ryfdizuo 2011-04-25
  • 打赏
  • 举报
回复
有难度啊,模式识别的范畴吧。
星空仰望者 2011-04-25
  • 打赏
  • 举报
回复
这个约束不全面吧
照楼主提供的,肯定不止一组解呀

33,026

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧