logo

logo

メールマガジン・新着情報一覧

  1. TOP
  2. メールマガジン・新着情報一覧
  3. A-0151. 3点を通る平面の方程式 — T.T

2023.11.08

A-0151. 3点を通る平面の方程式 — T.T

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

3点を通る平面の方程式

発行:エスオーエル株式会社
https://www.sol-j.co.jp/

連載「X線CTで高精度寸法測定!?」
2023年11月8日号 VOL.151

平素は格別のお引き立てを賜り、厚く御礼申し上げます。
X線CTによる精密測定やアプリケーション開発情報などをテーマに、
無料にてメールマガジンを配信いたしております。

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇



最近は、幾何学のちょっとした計算であれば、
ソフトウェアがすぐに答えを出してくれます。
(ちょっとしたどころか、かなり複雑な計算もすぐに答えが出ます。)

でも、どんな計算をさせたいのかは、人間が考える必要があります。
そして、考えるためには、自力でも計算できる基礎力は必要です。


時々出会う問題に、「3点を通る平面の方程式」を求めたい
というものがあります。
(最近も実務で何度か使いました。)

今回は、3点が与えられたときに、
平面の方程式を出す一般公式を書き下してみます。

まず、与える3点 a, b, c の座標を

  a = (a1, a2, a3)
  b = (b1, b2, b3)
  c = (c1, c2, c3)

とします。
3点を結べば、三角形ができますが、
その三角形が乗っかる平面の式を求めるということです。

このとき a, b, c の座標は、ベクトルになっているので、
(b-a), (c-a) というベクトルの差を取ることで、
三角形の2辺に対応するベクトルを得ることができます。

それぞれのベクトルの成分を書くと、

  b-a = (b1-a1, b2-a2, b3-a3)
  c-a = (c1-a1, c2-a2, c3-a3)

となります。
(ベクトルの差なので、各成分の差を並べるだけです。)

さて、平面に沿う2つのベクトルができましたので、
この外積を取ることにします。

外積を取ることで、2つのベクトルに垂直なベクトル n ができます。
つまり、平面の法線方向を向いたベクトルになります。

外積も機械的に計算できます。
n = (b-a)×(c-a) の各成分は、

  n1 = (b2-a2)(c3-a3)-(b3-a3)(c2-a2)
  n2 = (b3-a3)(c1-a1)-(b1-a1)(c3-a3)
  n3 = (b1-a1)(c2-a2)-(b2-a2)(c1-a1)

となります。


続いて、平面の方程式:

  Ax + By + Cz + D = 0

における係数 A, B, C, D について考えます。

法線方向を向いたベクトルをこれらの係数で書くことができれば、
目的を達成できそうです。

そこでまず、この平面が X軸、Y軸、Z軸 と交わる点を求めます。
X軸との交点は、(x, 0, 0) を代入することで、

  Ax + D = 0

となるので、x = -D/A のように解けます。
同様に、Y軸とZ軸についても計算すると、3つの交点座標が

  (-D/A,    0,    0)
  (   0, -D/B,    0)
  (   0,    0, -D/C)

だと分かります。

3つの点の座標が分かれば、最初にやった手順と同じように、
ベクトルの差を取って、2つのベクトルを作り、外積を計算します。

差を取ってできる2つのベクトルは、

  (-D/A,  D/B,    0)
  (   0,  D/B, -D/C)

となり、
その外積 m = (-D/A, D/B, 0)×(0, D/B, -D/C) は、

  m = ( (-DD)/(BC), (-DD)/(AC), (-DD)/(AB))

と計算できます。
このままでは少し分かりにくいので、定数倍を括りだします。
すると、

  m = -DD/(ABC) (A, B, C)

となります。


さて、与えられた3点 a, b, c から作ったベクトル n と、
平面の方程式の係数 A, B, C, D で表されるベクトル m
ができました。

どちらも、法線方向を向いたベクトルです。
平面の方程式は、両辺を定数倍しても同じ式なので、
n = (A, B, C) と取っても良いことが分かります。

つまり、

  A = (b2-a2)(c3-a3)-(b3-a3)(c2-a2)
  B = (b3-a3)(c1-a1)-(b1-a1)(c3-a3)
  C = (b1-a1)(c2-a2)-(b2-a2)(c1-a1)

のように求まったことになります。

最後に、Dを求めるために、
与えられた3点のうちの一つ a を使って、

  A a1 + B a2 + C a3 + D = 0

を解いて、

  D = -(A a1 + B a2 + C a3)

を得ます。
改めて、今回得た公式を書くと、

  A = (b2-a2)(c3-a3)-(b3-a3)(c2-a2)
  B = (b3-a3)(c1-a1)-(b1-a1)(c3-a3)
  C = (b1-a1)(c2-a2)-(b2-a2)(c1-a1)
  D = -(A a1 + B a2 + C a3)

になります。

与えられた3点で作ったベクトルの外積の成分が
きれいに平面の式の係数になるというのは、
何か心に感じるものがありませんか?


--
高野智暢

一覧に戻る

お問い合わせ Contact

048-441-1133

お問合せフォーム