• 締切済み

遠近法の計算です

計算で遠近法によって見える距離の縮小率を求めたいと考えています。 スタートラインに身長1.5mのAさんBさんCさんDさんEさんの5人が立っています。 Aさんはスタートラインに立ったまま(0m) Bさんはスタートラインから50m先に進みました。 Cさんはスタートラインから100m先に進みました。 Dさんはスタートラインから500m先に進みました。 Eさんはスタートラインから1000m先に進みました。 Aさんから、Bさん、Cさん、Dさん、Eさんをそれぞれ見たとき、実際の身長1.5mよりも小さく見えると思いますが、その小さくなって見えた身長(見た目)を計算して求めることはできますか? 比例じゃない計算になるかと思いますが、どういう計算式で求めることができますでしょうか? 1000mだと、見た目かなり小さく、1cmくらいになって見えるのではないかと思うのですが……概算でいいので知りたいです。

みんなの回答

  • rnakamra
  • ベストアンサー率59% (761/1282)
回答No.4

>仮に実測したら、Aさんから見たときの50m先のBさんは、数センチでしょう。 実測というのはどのように測定しているのでしょうか。 単なる見た目?そんなものを数学で議論してはいけません。式の立てようもありません。 何度もいいますが、数センチに見えるというのは、どこにおいたものさしの目盛りと比較しているのかによって異なります。 それこそ目から0.1cmしか離れていないものさしの1cmの目盛りであれば1m離れた人よりも大きく見えるはずです。 >1キロ先のEさんは、ほぼ点に見えると思います。おそらく実際には2キロ先も3キロ先もほぼ点に見えると思います。 1キロでも2キロでも3キロでも、Aさんから見たら縮小率はほとんど変わらないと思います。 これは数学的にどうこうという問題ではなく、観察する人間の目の問題になってしまいます。 人間の目の角度分解能の限界についての話となるため、数学だけで議論することはできません。もちろん観測者の視力にも大きく影響されると思います。(視力が6.0位の人なら1km先と2km先では十分違って見えることでしょう。) 数学では、十分離れている場合には視野角がほぼ距離に反比例するとしかいえません。

全文を見る
すると、全ての回答が全文表示されます。
  • rnakamra
  • ベストアンサー率59% (761/1282)
回答No.3

#2のものです。 >観測者はAさんです。 >Aさんを基準にすべてを考えるとしたらということなのですが。。。 観測者から見て距離0のものを基準にすることはできません。 あくまでできることは二つの相対比較となりますが、たとえば、1m離れた人と比較しても大きさ、ということでしたら議論可能ですが、距離0の観測者本人を基準にすることはできないのです。 ちょうど#1のかたがよい図を書いてくださったの説明しますと、 #2で私が説明した角度というのは、観測者の目から出ている同じ色の日本の線のなす角を意味しています。 大きさの相対比較という意味では下の図の中の縦線の全体の長さと色を塗った部分の長さの比較ということになりますが、この中の線が観測者に近づくにつれてこの比は急激に小さくなっていきます。 距離が0になると、色のついた部分の長さが0になり比が取れなくなります。

rina-rina
質問者

補足

Aさんから見たBさん、Cさん、Dさん、Eさんのサイズの比較はできるかと思います。 Aさんからおよそ4キロ先に消失点があります。ということは、消失点に向かってBさん、Cさん、Dさん、Eさんは徐々に小さくなって見えていきます。 仮に実測したら、Aさんから見たときの50m先のBさんは、数センチでしょう。1キロ先のEさんは、ほぼ点に見えると思います。おそらく実際には2キロ先も3キロ先もほぼ点に見えると思います。 1キロでも2キロでも3キロでも、Aさんから見たら縮小率はほとんど変わらないと思います。 逆に、2m、4m、8m、12m、20m先の場合は、縮小の幅は上記と比べて大きくなると思います。しかし単純に大きさと距離の比例の縮小率ではないと思います。 私が知りたいのは、このサイズと距離の関係を表した数式です。。。

全文を見る
すると、全ての回答が全文表示されます。
  • rnakamra
  • ベストアンサー率59% (761/1282)
回答No.2

長さで表すのは無理があります。 考えても見てください。 5cm離れたとことにあるものさしの1mmの目盛と30cm離れた1mmの目盛では違った大きさになります。 どちらを基準にするのでしょうか? この場合、普通は角度で示すのが一般的です。 足から頭のてっぺんまで、観測者(の目)からみての広がりの角度で評価します。 どうしても長さで評価したいのであれば、基準となるスケールが観測者からどれくらい離れているかを決める必要があります。

rina-rina
質問者

補足

観測者はAさんです。 Aさんを基準にすべてを考えるとしたらということなのですが。。。

全文を見る
すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

ヒント: 図を書いてみましょう あとは三角関数

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 遠近法の問題です。土手の高さを求めたいです。

    遠近法の問題です。土手の高さを求めたいです。 見えにくいかと思われますが、下の画面のAの部分、下の赤線部分から、上の赤線部分までが237pxで、実際の長さが3.25mになります。 遠近法では奥行きの長さの比率は概ね距離の2乗に反比例します。 ちなみに排水溝のところから上の道路までは16mになります。 この場合土手の高さは計算できますか。もちろん土手は傾いています。

  • 簡単そうで難しい計算

    簡単そうで難しい計算 A1に3 A2に4 A3に5 A4に7、B1に6 B2に7 B3に12 B4に13 B5に16、C1に1 C2に6 C3に7 C4に8 C5に9、D1に12 D2に13 D3に14 D4に20、E1に13 E2に15 E3に16の数値が入力されています。それぞれ列の少ない数値からA+B+C+D+Eの加算合計値を表示できないでしょうか?自分で調べてみたのですが順列で組み合わせの数値を出す計算式はあったのですが、その組み合わせの加算値を出す方法はわかりませんでした。 合計値と共に3+6+1+12+13 3+6+1+12+15 のように何を組み合わせたかも知りたいです。 グループ内の数値の組み合わせ点数を知りたいので、この様なものが必要になってしまい安易に考えていたのですが、私では手に負えません。 どうぞよろしくお願い申し上げます。

  • エクセルに以下のような複雑な計算をさせたいです。

    エクセルに以下のような条件の計算をさせたいです。 「2a , 3b , 5c , 6d , 8e , 10f」 a+b+c+d+e+fが上のどれよりも小さくなる場合の、 a,b,c,d,e,fの数字の組みわせで最も小さいものを求めたいです。 2a ≧ a+b+c+d+e+f 3b ≧ a+b+c+d+e+f 5c ≧ a+b+c+d+e+f 6d ≧ a+b+c+d+e+f 8e ≧ a+b+c+d+e+f 10f ≧ a+b+c+d+e+f (ただし、a,b,c,d,e,fは正の数) ※分かりやすいように、これらの数字は適当に入れたので、答えが無いかと思います。 実際は別の数字に置き換えます。 ※また、コンピュータが無限に計算し続けることを防ぐために上限を決めてもいいです 関数かマクロで計算させる方法を教えて下さい。 わかりやすくなるようにシンプルに説明しましたが、 実際は最大13組まで計算することになり、 自力でも計算してみましたが、とてつもなく時間がかかりました。 出来ればコンピューターに計算させたいと思い質問しました。

  • エクセルの計算

    エクセルの計算    A    B    C    D    E 1  10   20   30    40   50 2  5    3    2     5   10 がある場合、 各縦列を掛けたのち、その結果を合計したいのですが、 一気に計算できる関数ってありますか? 宜しくお願いします。 現在  =(A1*A2)+(B1*B2)+(C1*C2)+(D1*D2)+(E1*E2) という様にしているのですが、多いときは大変なもので・・・ 文章が乱雑ですみません。

  • 計算速度をはやくするには

    問題 a^5 + b^5 + c^5 + d^5 = e^5 が成立する場合のa,b,c,d,eを計算するプログラムを作成したのですが、処理速度が30秒もかかってしまいます。 どこを変更、または何を追加すれば速くなるか教えてください。 条件は a < b < c < d < e a,b,c,d,e, < 200 です。 どうかご教授お願いします。 #include <stdio.h> int main (void) { int a,b,c,d,e ; double A5,B5,C5,D5,E5; for(a = 1; a <= 195 ; a++ ) { A5 = a * a * a * a * (double)a ; for(b = a+1; b <= 196 ; b++ ) { B5 = b * b * b * b * (double)b ; for(c = b+1; c <= 197 ; c++ ) { C5 = c * c * c * c * (double)c ; for(d = c+1; d <= 198 ; d++ ) { D5 = d * d * d * d * (double)d ; for(e = d+1; e <= 199 ; e++ ) { E5 = e * e * e * e * (double)e ; if((A5 + B5 + C5 + D5 ) == E5) { printf("a=%d,b=%d,c=%d,d=%d,e=%d\n",a,b,c,d,e); printf("a^5=%.0lf,b^5=%.0lf,c^5=%.0lf,d^5=%.0lf,e^5=%.0lf\n",A5,B5,C5,D5,E5); } } } } } } return 0; }

  • 反復計算で指数方程式の解を求めたい

    よろしくお願いいたします。以下方程式(単調増加関数)のxについて求めたいです。 a x + (b x)^1/(n+1) +(c x)^1/(m+1) - d=0 a, b, c, d (定数)を各列に代入、各行の右側にxを求める式を代入し計算するシートを作りたいです。反復計算、循環参照を使用しa,b,c,dの列の横に数式をコピペして一括て求めたいです。 近似解でも良いです。 ためしに式を変形し x={(b x)^1/(n+1) +(c x)^1/(m+1) - d}/a として、たとえば a,b,c,dがA1, B1, C1, D1に代入されており E1:=((B1*F1)^1/(n+1)+(C1*F1)^1/(m+1) -D1)/A1 F1:=E1 として循環参照をさせ、反復回数100、精度0.0001に設定し計算したところ どちらのセルも計算されず、#NUM となってしまいました。 (d=0のときのみx=0と計算できました。) a~d及び指数のn,mの数値の範囲は以下です。 a:0.04-0.07 b:90-100 c:70-90 d:0-100 n::0.157 m:0.352 ニュートン法を用いると負のべき乗または負の指数を計算することになって#NUMとなってうまくいきません。この問題をどうにか回避して計算する方法をご存知の方、ご教示いただきたくお願いします。

  • 2つの計算式をつなげて再度計算したい

    A1 8000、 B1 48780、 C1 32520 のデータで 2つの式があり少ない方の答えに3/5を加えて一つの関数にしたいです 4つの式はD1,E1 で計算する F1 に小さい方を表示して G1で再度計算 A1---------B1---------C1---------D1---------E1---------F1-------G1 8000 --- 48780 --- 32520 --- 7592 --- 1706 --- 7592 --- 4555 8,000*10%+8,000*(90%-5%*1.021)=7,592  ------D1に格納 8,000*10%+(48,780+32,520)*20%=17,060   ------E1に格納 MIN(D1:E1) -----------F1に格納 7592*3/5=4,555 -------G1に格納(答え) 1つにするのは難しいのでどなたかおねがいします

  • 比例式について。

    a:b=c:dのとき、a/b=c/dという比例式になるのですが、a:b:c=d:e:fのとき a/d=b/e=c/fという比例式となるのは、どうしてですか?

  • 無限等比級数の計算

    あるパチンコ機の特賞継続回数を計算していたら以下のような無限等比級数になったのですが、この計算の仕方がわかりません。 1回目:(C*E+D*F)/(E+F) 2回目:(A*C*E+B*D*F)/(A*E+B*F) 3回目:(A^2*C*E+B^2*D*F)/(A^2*E+B^2*F) 4回目:(A^3*C*E+B^3*D*F)/(A^3*E+B^3*F)  ・  ・  ・ よろしくお願いします。

  • Numbersでの計算で困っています

    現在2015年8月での最新バージョンNumbers バージョン 3.5.3を使用しています。 添付画像の計算で、商品Aの1単位が6個、商品Bの1単位が4個、Cが4個、Dが3個、Eが6個、Fが5個、Gが2個です。 商品AをAさんが4個、Bさんが5個、Cさんが1個を購入したとすれば、合計は「=SUM(C2:E2)×B2」で60個と計算出来ますが、以下商品B~GまではセルF2の計算式をセルF3~F8までコピーで出来ました。 ここまではわかります。 次に、Aさんが商品A~Gを購入した場合の計算方法ですが、 「=SUM(C2×B2+C3×B3+C 4×B4+C5×B5+C6×B6+C7×B7+C8×B8)」 これで99個と計算できますが、実際使いたいのは縦50種類以上になるのでもう少し効率のいい計算式を教えていただきたいのと、Bさんの合計はAさんの合計の式(セルC10)をコピーしてもC列とD列で計算されてしまいます。 10行目にはC列✕B列の合計、D列✕B列、E列✕B列の合計を表示させたいのですが、簡単に計算できる方法はありませんか? よろしくおねがいします。