Programmeerimise algkursus Harjutus 2

Allikas: Lambda
Redaktsioon seisuga 17. september 2008, kell 11:10 kasutajalt Anttix (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

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;
	}