Programmeerimise algkursus Harjutus 2
Sihtimine käib igasugu nurkade ja peilungite järgi. Loe algatuseks:
public void onScannedRobot(ScannedRobotEvent e) {
double vastase_peilung = e.getBearing();
double tuki_suund = getGunHeading();
double minu_suund = getHeading();
double vastase_suund = minu_suund + vastase_peilung;
double keeramisnurk = normalRelativeAngle(vastase_suund - tuki_suund);
turnGunRight(keeramisnurk);
}
NB! Et asi töötaks, tuleb oma robotisse juurde lisada ka see nurga arvutamise funktsioon:
/**
* normalRelativeAngle: Returns angle such that -180 < angle <= 180
*/
public double normalRelativeAngle(double angle) {
if (angle > -180 && angle <= 180) {
return angle;
}
double fixedAngle = angle;
while (fixedAngle <= -180) {
fixedAngle += 360;
}
while (fixedAngle > 180) {
fixedAngle -= 360;
}
return fixedAngle;
}