面の角度


\(\def\bm{\boldsymbol}\)\(\def\mb{\mathbf}\)\(\def\di{\displaystyle}\)\(\def\ve{\varepsilon_0}\)\(\newcommand{\pdr}[2]{\dfrac{\partial #1}{\partial #2}}\)\(\newcommand{\ppdr}[2]{\dfrac{\partial^2 #1}{\partial #2}}\)

1. 面の式


 点 \(A, B, C\) がある。この3点で構成される面の式を求める。

ベクトル \(\overrightarrow{AB}\) と \(\overrightarrow{AC}\) を考える。点 \(A, B, C\) の座標をそれぞれ \((x_0,y_0,z_0)\,,\,(x_1,y_1,z_1)\,,\,(x_2,y_2,z_2)\) とすると、各々の成分は

\(\overrightarrow{AB}=(x_1-x_0,y_1-y_0,z_1-z_0)^T=(x_{AB},y_{AB},z_{AB})^T\)とおく。
\(\overrightarrow{AC}=(x_2-x_0,y_2-y_0,z_2-z_0)^T=(x_{AC},y_{AC},z_{AC})^T\)とおく。

ここでベクトル \(\overrightarrow{AB}\) と \(\overrightarrow{AC}\) の外積を考える。
\(\overrightarrow{AB}\times\overrightarrow{AC}=\begin{pmatrix}
y_{AB}x_{AC}-z_{AB}y_{AC}\\
z_{AB}x_{AC}-x_{AB}z_{AC}\\
x_{AB}y_{AC}-y_{AB}x_{AC}\end{pmatrix}=\begin{pmatrix}P_x\\P_y\\P_z\end{pmatrix}\quad\cdots\,\)(1) 法線ベクトル\(\,\vec{\bm{n}}\,\)と平行となる。

この法線ベクトルが点\(\,A\,\)を通るとすると
\(P_x(x-x_0)+P_y(y-y_0)+P_z(z-z_0)=0\quad\cdots\,\)(2) が平面の式である

2. 面の最大傾斜

式(2)より
 \(P_xx+P_yy+P_zz-(P_xx_0+P_yy_0+P_zz_0)=0\)
 この( )の部分を\(\,D\,\)とおけば

 \(P_xx+P_yy+P_zz-D=0\quad\cdots\,\)(3)
 が得られる。
 各軸の切片は\(\,P_x’=C/P_x\,,\,P_y’=C/P_y\,,\,P_z’=C/P_Z\,\)
 となる。

 この式を変形すると \(\quad f(x,y)=z=P_x/P_z\,x+P_y/P_z\,y-D/P_z\,\quad\cdots\,\)(4)

 また、この平面上の傾き\(\,\mathrm{grad}\,f\,\)は、一定で
\(\quad \mathrm{grad}\,f=\left(\pdr{z}{x},\pdr{z}{y}\right)=(P_x/P_z\,,\,P_y/P_z)\quad\cdots\,\)(5)  となる。

2-1. 最大傾斜

最大傾斜角度は
\(\,\theta=\arctan\sqrt{\left(\left|\dfrac{dz}{dx}\right|^2+\left|\dfrac{dz}{dy}\right|^2\right)}\quad\cdots\,\)(6)
 であるので、実際の計算は
\(\,180/\pi\times\arctan\sqrt{\left(\dfrac{P_x}{P_z}\right)^2+\left(\dfrac{P_y}{P_z}\right)^2}\quad\cdots\,\)(7) となる。

2-2. 傾斜方向

傾斜方向は
\(\,aspect=\arctan 2\left(\dfrac{dz}{dy}\,,\,-\dfrac{dz}{dx}\right)\quad\cdots\,\)(8) となっているので、実際の計算は
\(\,180/\pi\times\arctan 2\left(\dfrac{P_y}{P_z}\,,\,-\dfrac{P_x}{P_z}\right)\quad\cdots\,\)(9) となる。

なお、\(\,\arctan 2(x,y)=y/x\,\)であるが、\(\,x\ne 0\,\)や符号によって値が変わってくるので、注意のこと。

3. 面同士の角度

交差する面の法線ベクトルを\(\,(Q_x,Q_y,Q_z)^T\,\)とする。法線ベクトル同士の交差する角度が面の公差角度になるので、
\(\quad\cos\theta=\dfrac{|P_xQ_x+P_yQ_y+P_zQ_z|}{\sqrt{P_x^2+P_y^2+P_z}\sqrt{Q_x^2+Q_y^2+Q_z^2}}\quad\cdots\,\)(3)

4. 参考資料

Esri 社の Web ページを参考にしました。

  • 傾斜角 (Slope) の仕組み
  • 傾斜方向の仕組み


  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    CAPTCHA