0

我有一个包含地形数据的矩阵,比如说几座山。我想知道每个数据点与垂直线的角度信息。这里有两个例子:

  1. 如果我考虑一个完全平坦的山脚附近的地方,我的角度是 90°(与垂直线成 90°)。
  2. 如果我在山的最陡点,我有一个较低的角度,比如说 50°。

为了计算这个,我想我必须连接所有的地形数据,以便(至少)三个近像素形成三角形。之后我必须计算这个三角形的角度。

我可以使用现有的算法吗?

4

1 回答 1

1

如果您的高度图是矩阵 A,那么您可以通过

  Xgrad = (A(2:end-1,3:end)-A(2:end-1,1:end-2))/2;
  Ygrad = (A(3:end,2:end-1)-A(1:end-2,2:end-1))/2;

然后角度将是

  deg = (pi/2 - atan(sqrt(Xgrad.^2 + Ygrad.^2),1))/pi*180;

根据您的高度图,数字区分会产生“模糊”的结果。也许您必须进行一些模糊过滤才能产生更平滑的渐变。

于 2017-06-28T14:10:35.580 回答