回答編集履歴
2
分数が逆だったわよ…
test
CHANGED
@@ -40,15 +40,15 @@
|
|
40
40
|
|
41
41
|
なので,「30度←→160pix」の関係から,`f`の値を求めておくことができます.
|
42
42
|
|
43
|
-
`160 = f * tan30度` → `f = tan30度
|
43
|
+
`160 = f * tan30度` → `f = 160/tan30度`
|
44
44
|
|
45
45
|
|
46
46
|
|
47
47
|
で,表示域が240[pix]に広がったならば,
|
48
48
|
|
49
|
-
`240 = f * tanθ' = (tan30度
|
49
|
+
`240 = f * tanθ' = (160/tan30度) * tanθ'`
|
50
50
|
|
51
|
-
から,atanとか使って`θ'`を求めてやれば良いわけです.
|
51
|
+
から,atanとかを使って`θ'`を求めてやれば良いわけです.
|
52
52
|
|
53
53
|
|
54
54
|
|
1
式を追記
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
例えば,視野60度の範囲をウィンドウ幅
|
11
|
+
例えば,視野60度の範囲をウィンドウ幅320pixで描画していたとき…
|
12
12
|
|
13
13
|
![イメージ説明](bcc884de266a234279e56443f8d2300d.png)
|
14
14
|
|
@@ -27,3 +27,29 @@
|
|
27
27
|
すなわち,下図の`θ'`を「30度←→160pix が崩れない値として」求める必要があります.
|
28
28
|
|
29
29
|
![イメージ説明](a377ec5b553b56c43864c2f6011731f8.png)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
Perspectiveな投影であれば,
|
38
|
+
|
39
|
+
`表示域の幅[pix] = f * tanθ`
|
40
|
+
|
41
|
+
なので,「30度←→160pix」の関係から,`f`の値を求めておくことができます.
|
42
|
+
|
43
|
+
`160 = f * tan30度` → `f = tan30度/160`
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
で,表示域が240[pix]に広がったならば,
|
48
|
+
|
49
|
+
`240 = f * tanθ' = (tan30度/160) * tanθ'`
|
50
|
+
|
51
|
+
から,atanとか使って`θ'`を求めてやれば良いわけです.
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
要は,ある`f`の値を定数として持っておき,ウィンドウサイズが変わったら,ウィンドウ幅と`f`の値から新しい視野角を求めて使う(投影行列を更新してやる)ようにする,という話になるでしょう.
|