アプリ版:「スタンプのみでお礼する」機能のリリースについて

3次元上の三角形内の任意点の高さを求める公式の導き方

3次元上に三角形(平面)があり各頂点(X1,Y1,Z1),(X2,Y2,Z2),(X3,Y3,Z3)の座標が明確であるとき
その面上にある任意点(X,Y)のZを求めたいのですが・・・。
公式は発見できたのですが、どのようにしてこの公式が導き出されたのかわかりません。

Z=a(X-X1)+b(Y-Y1)+Z1

a=[(Z2-Z1)(Y3-Y1)-(Y2-Y1)(Z3-Z1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]
b=[(X2-X1)(Z3-Z1)-(Z2-Z1)(X3-X1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]

頭の良くないので・・・・
導き出し方をできるだけわかりやすく教えていただけないでしょうか。

A 回答 (2件)

あってるかどうかは確認してないけど, その 3点を通る平面の方程式を


z = ax + by + c
の形で求めればいい.
    • good
    • 0
この回答へのお礼

早急な対応ありがとうございます。

お礼日時:2010/07/29 15:31

>Z=a(X-X1)+b(Y-Y1)+Z1


>a=[(Z2-Z1)(Y3-Y1)-(Y2-Y1)(Z3-Z1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]
>b=[(X2-X1)(Z3-Z1)-(Z2-Z1)(X3-X1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]
  ↑
これって「発見できた公式」?

スタートポイントは、
 a(X-X1)+b(Y-Y1) = (Z-Z1)
でよさそう。
[X1, Y1, Z1] を通る平面です。

残りの二点を代入して、
 a(X2-X1)+b(Y2-Y1) = (Z2-Z1)   …(1)
 a(X3-X1)+b(Y3-Y1) = (Z3-Z1)   …(2)
この両式から a, b を求める。
左辺の係数行列式 D は、
 (X2-X1)(Y3-Y1) - (Y2-Y1)(X3-X1) = D
係数 - 逆行列は、
 | (Y3-Y1)  -(Y2-Y1) |
 | -(X3-X1)  (X2-X1) | / D
これを [ (Z2-Z1) (Z3-Z1) ] ^t ←(転置)
に掛けて、
 a=[(Z2-Z1)(Y3-Y1)-(Y2-Y1)(Z3-Z1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]
 b=[(X2-X1)(Z3-Z1)-(Z2-Z1)(X3-X1)]/[(X2-X1)(Y3-Y1)-(Y2-Y1)(X3-X1)]

…で合ってそうです。
(積順がチョイト乱れているだけ)
  
    • good
    • 0
この回答へのお礼

ありがとうございます。
今からがんばって理解してみます。

お礼日時:2010/07/29 15:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!