diff options
author | Peter Wu <lekensteyn@gmail.com> | 2013-11-27 16:41:28 +0100 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2013-11-27 17:06:16 +0100 |
commit | 0f1a2cc09fc02e26e48fd82cad2fad4ea0cd32df (patch) | |
tree | 0d73a11f945a4601c55ab9bb64d794b291e16582 | |
parent | 7e101b0c9bf4d519b6bf9dcdc6b0ca3e09124b93 (diff) | |
download | 2iv60-robots-0f1a2cc09fc02e26e48fd82cad2fad4ea0cd32df.tar.gz |
Exercise 1.2 Viewing (part 2)
This has odd behavior, modifying some perspective.
NOTE: vDist is modified using scrolling, vWidth is changed using
right-click + scroll.
-rw-r--r-- | src/RobotRace.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/RobotRace.java b/src/RobotRace.java index 42850d1..608438f 100644 --- a/src/RobotRace.java +++ b/src/RobotRace.java @@ -150,8 +150,16 @@ public class RobotRace extends Base { gl.glLoadIdentity(); // Set the perspective. - // Modify this to meet the requirements in the assignment. - glu.gluPerspective(40, (float)gs.w / (float)gs.h, 0.1, 100); + // angle = 2 arctan(vWidth / 2vDist) + float angle; + + angle = 2f * (float) atan((0.5f * gs.vWidth) / gs.vDist); + // radians to degree (degree = rad / pi * 180) + angle = 180 * angle / (float) PI; + // lower than 1 would yield no picture, great values cause an "infinite" line segment + angle = max(1, min(179, angle)); + glu.gluPerspective(angle, (float)gs.w / (float)gs.h, + 0.1 * gs.vDist, 10.0 * gs.vDist); // Set camera. gl.glMatrixMode(GL_MODELVIEW); |