Difference between revisions of "U"
Jump to navigation
Jump to search
m (no trig is even faster than fast trig!) |
m (fix) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
''U'' is a universal math library, where ''U'' stands for ''U''niversal. | ''U'' is a universal math library, where ''U'' stands for ''U''niversal. | ||
− | The | + | The purpose of U is to avoid code like this, which coupled business logic and math logic |
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
− | + | double absoluteBearing = this.getHeadingRadians() + event.getBearingRadians(); | |
− | + | double latVel = Math.sin(event.getHeadingRadians() - absoluteBearing) * event.getVelocity(); | |
− | + | double advVel = -Math.cos(event.getHeadingRadians() - absoluteBearing) * event.getVelocity(); | |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 20: | Line 20: | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
− | + | V direction = direction(robot.pos(), enemy.pos()); | |
− | + | double latVel = cross(direction, enemy.vel()); | |
− | + | double advVel = -dot(direction, enemy.vel()); | |
</syntaxhighlight> | </syntaxhighlight> | ||
the second one is also much faster because it involves no trig. | the second one is also much faster because it involves no trig. |
Latest revision as of 07:17, 8 August 2018
This article is a stub. You can help RoboWiki by expanding it. |
This page is dedicated for describing the aaa.util.math.U
U is a universal math library, where U stands for Universal.
The purpose of U is to avoid code like this, which coupled business logic and math logic
double absoluteBearing = this.getHeadingRadians() + event.getBearingRadians();
double latVel = Math.sin(event.getHeadingRadians() - absoluteBearing) * event.getVelocity();
double advVel = -Math.cos(event.getHeadingRadians() - absoluteBearing) * event.getVelocity();
write like this:
V direction = direction(robot.pos(), enemy.pos());
double latVel = cross(direction, enemy.vel());
double advVel = -dot(direction, enemy.vel());
the second one is also much faster because it involves no trig.