summaryrefslogtreecommitdiff
path: root/src/RobotRace.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/RobotRace.java')
-rw-r--r--src/RobotRace.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/RobotRace.java b/src/RobotRace.java
index bcfceab..ee7fbcc 100644
--- a/src/RobotRace.java
+++ b/src/RobotRace.java
@@ -414,9 +414,16 @@ public class RobotRace extends Base {
Vector robotPos = raceTrack.getPointForLane(robot.getTimePos(), i);
gl.glTranslated(robotPos.x(), robotPos.y(), robotPos.z());
- // Calculate angle for the robots to look at, multiply by 180/PI
- // to convert the radions to degrees.
- double angle = atan2(robotPos.y(), robotPos.x()) * 180/PI;
+ /* Calculate angle for the robots to look at, multiply by 180/PI
+ * to convert the radions to degrees.
+ * First get the tangent of the robot, that is the real direction
+ * where the robot is looking to.
+ * Then add this vector to the actual position, and from the
+ * resulting vector we can calculate the angle. */
+ Vector robotTangent = raceTrack.getTangent(robot.getTimePos());
+ Vector totalVector = robotTangent.add(robotPos);
+
+ double angle = atan2(totalVector.y(), totalVector.x()) * 180/PI;
gl.glRotated(angle, 0, 0, 1);