こんにちは
文献等をちゃんと読めてないので、間違ってるかもしれませんが。
傾斜の角度は基本的には「 atan(垂直距離÷水平距離) 」で間違いありません。
傾斜の計算対象であるメッシュ(グリッド) z11 を中心に以下のような 3x3 のメッシュを
考えることとします。(メッシュサイズは m とします。)
z00 z10 z20
z01 z11 z21
z02 z12 z22
まず x 方向(東西方向)の傾斜を求める方法として「垂直距離÷水平距離」ですので
対象メッシュより東側の z11 と z21 に着目すると (z21 - z11 ) / m となります。
また、対象メッシュより西側の z01 と z11 に着目すると (z11 - z01) / m となります。
傾斜の代表値として、これらの平均をとると (z21 - z01) / (2m) となります。
同様に、 y 方向(南北方向)の傾斜として (z12 - z10) / (2m) が考えられます。
これはあくまで x 方向と y 方向それぞれに対する傾斜( dz/dx 及び dz/dy )なので、
実際の傾斜(斜め方向の傾斜)は √( (dz/zx)^2 + (dz/dy)^2 ) で求まります。
まとめますと、「垂直距離÷水平距離」= √( ((z21-z01) / (2m))^2 + ((z12-z10) / (2m))^2 ) で
求まり、この値を atan すると角度が求まります。
この傾斜アルゴリズムは Zevenbergen & Thorne によるもののようです。
一方、 Horn の式は、 x 方向の傾斜を当該行の傾斜 (z21-z01) / (2m) だけでなく、
上下の行における傾斜である (z20-z00) / (2m) と (z22-z01) / (2m) も考慮する方法のようです。
ただし、中央行の方を重視するために重みを 1, 2, 1 とし
dz/dx = ( (z20-z00) / (2m) + 2*((z21-z01) / (2m)) + (z22-z01) / (2m) ) / 4 とします。
同様に y 方向の傾斜である dz/dy も求め、 √( (dz/zx)^2 + (dz/dy)^2 ) を計算します。
このようにして得られた傾斜を atan で角度になおす方法が Horn の方法です。
記号がいろいろ出てきてややこしいですが、計算自体は単純ですので、決して難しい
計算ではないと思いますので、落ち着いて計算してみるとよいかと思います。