プロが教えるわが家の防犯対策術!

三次元上の点Pの求め方についてご助力ください。

■XYZ座標上の点P(Px,Py,Pz)を、ZX,XY,YZの三平面からみたときの点Pの傾きからPz=10 とした時の点Pの座標を求めよ。

◇傾き
 α=-17.22 (ZX平面よりX軸を基準にした傾き←(反時計回りが正)
 β=2.29 (XY平面よりX軸を基準にした傾き)
 γ=-13.22 (YZ平面よりY軸を基準にした傾き)

◇各平面上に投影された点P[x,y,z]
(1)Pzx[Acosα,0,Asinα] [A=原点から点Pzxまでの距離]
(2)Pxy[Bcosβ,Bsinβ,0] [B=原点から点Pxyまでの距離]
(3)Pyz[0,Ccosγ,Csinγ] [C=原点から点Pyzまでの距離]



□上記の(1)、(2)、(3)より連立方程式を作成。
 Acosα=Bcosβ
 Bsinβ=Ccosγ
 Asinα=Csinγ
また、
 A=Pz/SINα
 B=Pz/COSβ
 C=PY/COSγ より

連立方程式
 Px=Pz*[COSα/SINα]_1
 Py=Px*[SINβ/COSβ]_2
 Px=Py*[SINγ/COSγ]_3 となります。

この連立方程式の作成まですすめたのですが、この連立方程式1,2,3,が釣り合わず、どこか解き方を間違ったのではないかと考えています。

お忙しいなか恐縮ですが、3平面に投影された角度から点Pを求める解を教えてください。

A 回答 (1件)

[I] ZX平面を横軸Z、縦軸Xとして、X軸を基準に反時計回りにαを定義すると


Pz=-Asinα となりますので

(1)Pzx[Acosα,0,-Asinα]

に修正してください。

[II] XZ平面を横軸X、縦軸Zとして、X軸を基準に反時計回りにαを定義すると
(1)Pxz[Acosα,0,Asinα]になり、kukukさんの式展開になります。

ここでは [II] で話を進めます。

Px=Acosα=Bcosβ
Py=Bsinβ=Ccosγ
Pz=Asinα=Csinγ

A=Pz/sinα
B=Px/cosβ・・・・ここ間違っている(書き間違い?、次が正しくなっている)
C=Py/cosγ

Px=Pz×(cosα/sinα)
Py=Px×(sinβ/cosβ)
Pz=Py×(sinγ/cosγ)・・・ここ間違ってる

このことから

Pz=Pz×(cosα/sinα)×(sinγ/cosγ)×(sinβ/cosβ)

ゆえに
1=(cosα/sinα)×(sinγ/cosγ)×(sinβ/cosβ)

これはα,β,γが自由に設定できないことを示しています。

一般に3次元空間上の点は3つの独立な数字で表せます。
この点を原点からの長さと方向であらわすと、
長さ(1次元)+方向(?次元)=空間の点(3次元)
なので、方向は2次元つまり2つの独立な数字で表せます。
このため、α,β,γは自由に設定できません。

なお、回答は

Px=Pz×(cosα/sinα)
Py=Pz×(cosα/sinα)×(sinβ/cosβ)

α,β、Pzから点P(Px,Py,Pz)が求まります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
連立方程式途中で間違えてました。
α、β、γは自由に設定できないのですね。
その考え方を間違えていたようです。

説明不足にも関わらず、丁寧な回答どうもありがとうがざいました。

お礼日時:2007/02/06 21:13

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