こんにちは。ヤマヤタケシです。
画面に映っている大きさを維持しながら画角を変えたい時ってありますよね?
なんとなく、ググらずに考えました。
画角を変えるというのはカメラをズームをいじるのと同じです。
A1. カメラの画角を狭めると画面に映る範囲が狭くなって、相対的にモデルが大きくなります。
A2. カメラの画角を広げると画面に映る範囲が広くなって、相対的にモデルが小さくなります。
B1. カメラをモデルに近づけると大きくなります。
B2. カメラをモデルから遠ざけると小さくなります。
長ったらしい文だけど、ゆっくりイメージしてください。
欲しい値は、画角を変化させたあとに、同じ大きさになるような距離です。
具体的な数字を入れるとイメージができやすいので、画角45度で5000mから映しているのと同じ大きさになる画角15度の時の距離は?みたいに考えました。
画面に映る大きさはそれぞれ
y1 = 5000 * tan45
y2 = x * tan15
同じ大きさだから
y1 = y2
5000 * tan45 = x * tan15
x = 5000 * ( tan45 / tan15 )
ということで、動かす前角度のタンジェントを動かしたあとのタンジェントで割ったものを、動かす前の距離にかければいいですね。
高校レベル?いや、中学校レベルの数学かもしれませんけど、大人になったからといって考える力が増しているわけでもないのでそこそこ頭を使いました。
プログラムを作るってのは自分で問題を作って自分で解くってことなんだぜ!(ドヤァァ!
そんじゃまた。