我有一个山区的高程图(带有z值的大型2d数组)
我想知道我的身高地图上某些点的所有指南针轴承的视在地平线角度的高度。
为了说明,这个website有一些我想要的例子。
编辑: 我已经停止尝试找到这样做的函数,现在正在编写自己的函数。
我的方法是从我的点径向绘制线条,沿着这些线插入高度,然后沿每条线取max(z/r)
。
如果您知道已经执行此操作的功能,请告诉我,如果没有,希望我能尽快上传。
答案 0 :(得分:2)
我们假设您有3个矩阵,X
Y
和Z
以及您的位置(x,y,z)
,您可以计算
(tx丹尼尔......)R = sqrt((X-x)**2 + (Y-y)**2)
R = sqrt((X-x).^2 + (Y-y).^2)
Z = (Z-z)
,即距离位置和相对高度的距离,以便
T = Z/R
是一个切线矩阵,它是从位置到周围地形的视角的单调函数。
对于给定方向,您可以找到最接近网格的点列表,其变体为Bresenham algorithm,最后在点列表中找到最高T
值。
最后,从不同方向的最大T
(切线)值列表中,您可以根据您的位置计算视角。