Reworked TackGybeCommand. Current boat in race will now tack and gybe when control is pressed.
#Story[1097]
This commit is contained in:
@@ -25,9 +25,25 @@ public class TackGybeCommand implements Command {
|
|||||||
} else {
|
} else {
|
||||||
boat.setBearing(Bearing.fromDegrees(race.getWindDirection().degrees()));
|
boat.setBearing(Bearing.fromDegrees(race.getWindDirection().degrees()));
|
||||||
}*/
|
}*/
|
||||||
System.out.println(race.getWindDirection().degrees());
|
/*double angle = Math.max(race.getWindDirection().degrees(), boat.getBearing().degrees()) - Math.min(race.getWindDirection().degrees(), boat.getBearing().degrees());
|
||||||
double angle = Math.max(race.getWindDirection().degrees(), boat.getBearing().degrees()) - Math.min(race.getWindDirection().degrees(), boat.getBearing().degrees());
|
boat.setBearing(Bearing.fromDegrees(angle));*/
|
||||||
boat.setBearing(Bearing.fromDegrees(angle));
|
double boatAngle = boat.getBearing().degrees();
|
||||||
|
double windAngle =race.getWindDirection().degrees();
|
||||||
|
double differenceAngle = calcDistance(boatAngle, windAngle);
|
||||||
|
double angleA = windAngle + differenceAngle;
|
||||||
|
double angleB = windAngle - differenceAngle;
|
||||||
|
if(angleA % 360 == boatAngle){
|
||||||
|
boat.setBearing(Bearing.fromDegrees(angleB));
|
||||||
|
} else {
|
||||||
|
boat.setBearing(Bearing.fromDegrees(angleA));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private double calcDistance(double degreeA, double degreeB){
|
||||||
|
double phi = Math.abs(degreeB - degreeA) % 360;
|
||||||
|
double distance = phi > 180 ? 360 - phi : phi;
|
||||||
|
return distance;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,13 +18,6 @@ public class VMGCommand implements Command {
|
|||||||
//The refactoring of MockRace will require changes to be made
|
//The refactoring of MockRace will require changes to be made
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
/*VMG newVMG = boat.getPolars().calculateVMG(
|
|
||||||
race.getWindDirection(),
|
|
||||||
race.getWindSpeed(),
|
|
||||||
boat.calculateBearingToNextMarker(),
|
|
||||||
Bearing.fromDegrees(0d),
|
|
||||||
Bearing.fromDegrees(359.99999d));
|
|
||||||
boat.setVMG(newVMG);*/
|
|
||||||
if (boat.getAutoVMG()){
|
if (boat.getAutoVMG()){
|
||||||
boat.setAutoVMG(false);
|
boat.setAutoVMG(false);
|
||||||
System.out.println("Auto VMG off!");
|
System.out.println("Auto VMG off!");
|
||||||
|
|||||||
Reference in New Issue
Block a user