コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
MIKE猫Soft ◆M1HxkK9fMI2A
2018/12/31 12:12
質問
空間における二点の座標から、xy平面(この平面は、z方向に(+が奥、-が手前になる)動くものとする)の交点をx,yのみ答えるための式を作ってください。
上の通りです。
つまり、3Dエンジンで、Z座標がカメラ距離を超えるとおかしくなるところを、なんとかして食い止めようということで教えてほしいのです。
分かりやすく教えてください。(中学生だから、全然わからんw)

コメント

アバター
こういち 2018/12/31 12:34 ◆ou0jbJnEJ0Kb
とりあえず、xzの平面でのみ考えると良いですよ。yzの平面もxzと同様に求まります。
2点の座標を(x1,z1),(x2,z2)とすると、
直線の方程式は、z-z1=(z2-z1)(x-x1)/(x2-x1)
になります。
あとは、zにxy平面のz座標を代入すれば、x座標が求まります。

(2,3),(4,5),xy平面の座標0の場合
z-3=(5-3)(x-2)/(4-2)
z=x+1
z=0より、
x=-1
アバター
こういち 2018/12/31 12:39 ◆ou0jbJnEJ0Kb
で、プログラムで実現するときは、直線の方程式をxについて解けばOKです。
z-z1=(z2-z1)(x-x1)/(x2-x1)
x-x1=(z-z1)(x2-x1)/(z2-z1)
x=(z-z1)(x2-x1)/(z2-z1)+x1

yも同様にすると、式が出てきます。
y=(z-z1)(y2-y1)/(z2-z1)+y1
アバター
MIKE猫Soft 2018/12/31 12:46 ◆M1HxkK9fMI2A
ありがとうございます!
Z,Xの二つで平面が出来上がるということですね!
これなら中学生でもわかりますねw

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -