algorithm - 最近格点类型题

标签 algorithm math graphics

我似乎找不到解决这个问题的方法。让我们将 Z^2 设置为 R^2 中的整数格。给定一条有理射线(意味着具有有理斜率的向量),是否有一种快速方法可以根据正交距离计算最接近该向量的格点?这个方法可以推广到R^n中的超平面吗?

最佳答案

您的问题似乎没有明确定义。你如何定义到向量的距离? 如果您要求从晶格到方向为有理向量的直线的最近距离(如您的概括所建议的那样),那么答案为零,这要归功于合理性:您的方向是 D = (n1/d1, n2/d2).那么,点(d2*n1,d1*n2)就在线上了。

对于最小的非零距离:

我们可以假设 d1=d2=d : D = (n1/d, n2/d)(您可以通过设置例如 d = d1*d2 获得)。现在,单位网格格子到直线的可能距离的形式为 (Z*n1 + Z*n2)/d = (Z*gcd(n1,n2))/d,其中 Z 是整数集。 (这是 Bézout 定理的结果)。所以最小非零距离是 gcd(n1,n2)/d 其中 gcd(.,.) 给出两个整数的最大公约数。

关于algorithm - 最近格点类型题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002848/

相关文章:

algorithm - 嵌套循环的第一项和最后一项,从非零索引开始的算术级数之和

algorithm - 如何在给定的一段文本中找到匹配的括号或大括号的位置?

python - 为所有非递减序列的列表开发索引方案

javascript - 显式使用 Haxe API 类

java - 为什么我的图片无法加载到 contentPane 上,除了 CENTER 上?

c++ - OpenCV - SURF 特征比较

algorithm - 在设计字典之类的东西时推荐的数据结构?

python - 在 Python 中实现 "Wave Collapse Function"算法的问题

javascript - 调整旋转对象的大小保留左上角(亚像素渲染问题)

svg - 如何分割SVG中的不规则多边形