我有一个 NxN 值的高度图。
我想找到,给定一个点 A(红点),它的 x 和 y 坐标是给定的(并且 z 从数据中已知,所以 A 是表面的一个顶点)一组位于圆周上的点圆心在 A 和半径 R 的圆是一个很好的近似圆形“布”(灰色)覆盖在数据点描述的假想表面上。
采样,我试图找到的点集之间的倒数距离,不需要是统一的,但我仍然想至少找到所有与网格边缘相交的点距离 A 为 R 的圆。
如何找到这组点?
这是一个已知问题吗?
(来源:keplero.com)
- 编辑
Jan 使用的假设是正确的:样本形成与 [0,0] 对齐的规则矩形或正方形网格(在 XY 平面中)。但我想考虑 Z 方向的位移来计算距离。您可以将高度图视为地形,并将我正在寻找的算法视为向探险者提供的指令,该指令仅在给定纬度或经度的路径上行驶,标记距离 A 为 R 的点。步行距离,这是考虑到到目前为止所做的所有 Z 位移。探险者也在山谷中攀爬和下降。
对此的简单算法将是这样的。我们知道给定 R,x 和 y 轴上的最大位移对应于完全平坦的表面。如果没有斜率,x,y 点都在边界正方形 Ax-R < x < Ax+r 和 Ay-R
此时,它将开始移动到靠近的单元格,因为如果周界进入网格的一个单元格的边缘,它也必须退出该单元格。