掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
方程式を解くためには? (ID:60304)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以前の続きなのですが、カメラ位置を求める計算式は分かりました。 そこで、これをプログラムに直したいのですがどのようにすればいいでしょうか? 度々質問させていただいている上、不明瞭な質問ばかりになりがちですが、よろしくお願いします。 既知点を3つとし、それぞれの位置をベクトルとして考えp1(5,15,4)、p2(10,5,3)、p3(20,10,2)とする。カメラ位置をgとし、カメラから既知点までの距離をd1:37,d2:34,d3:24とする。 この時カメラ位置gは以下の式で求まる。 >(p2x - p1x)gx + (p2y - p1y)gy + (p2z - p1z)gz = 1/2 ((||p2||^2 - ||p1||^2) - (d2^2 - d1^2) >(p3x - p2x)gx + (p3y - p2y)gy + (p3z - p2z)gz = 1/2 ((||p3||^2 - ||p2||^2) - (d3^2 - d2^2) これより、2つの平面は 5x-10y-z=(1/2)(10^2+5^2+3^2-5^2-15^2-4^2)-(34^2-27^2))=81/2 10x+5y-z=(1/2)(20^2+10^2+2^2-10^2-5^2-3^2)-(24^2-34^2))=475 (5,-10,-1)と(10,5,-1)に直交するベクトルは、外積をとって (|-10, -1| |-1 5| |5 -10|) (| 5, -1|, |-1 10|,|10 5|) =(15,-5,125) =5(3,-1,25) となります。2平面の交線上の点を z=0 として求めるとx=1981/50 y=394/25なので、 交線の方程式は x=3t+1981/30 y=-t+556/25 z=25t となります。これを最初の球の方程式 d1^2 = (x-p1x)^2 + (y-p1y)^2 + (z+p1z)^2 に代入して (3t+1981/30-5)^2+(-t+556/25-15)^2+(25t-4)^2=37^2 というtの2次方程式をえます。 これを解くと t=-0.497173868068102, 0.487410088540544 そして、その時のカメラ位置は (38.1284783957957,16.2571738680681,-12.4293467017026)(41.0822302656216,15.2725899114595,12.1852522135136) となる。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.