PolarDiagramImpl is functional

SailingSimulator only needs the algorithm
This commit is contained in:
Alexandru Dimofte committed 2012-05-08 14:01:38 +03:00
1 parent aeca73f26c
commit 288512949f
5 files changed
+46 -16

No files matched your search

@@ -1,6 +1,7 @@
package com.sap.sailing.simulator;
import java.util.List;
import java.util.Map;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.simulator.WindField;
@@ -14,5 +15,7 @@ public interface SimulationParameters {
WindField getWindField();
Boundary getBoundaries();
Map<String,Object> getSettings();
}
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
import com.sap.sailing.domain.base.impl.MeterDistance;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
@@ -87,7 +86,7 @@ public class PathImpl implements Path {
return null;
}
public static void main(String[] args) {
/*public static void main(String[] args) {
TimedPositionWithSpeed p1 = new TimedPositionWithSpeedImpl(new MillisecondsTimePoint(0), new DegreePosition(25.045792, -91.472168), new KilometersPerHourSpeedWithBearingImpl(30, null));
TimedPositionWithSpeed p2 = new TimedPositionWithSpeedImpl(new MillisecondsTimePoint(3000000), new DegreePosition(26.076521,-89.681396), new KilometersPerHourSpeedWithBearingImpl(30, null));
@@ -99,12 +98,16 @@ public class PathImpl implements Path {
lst.add(p3);
Path pth = new PathImpl(lst);
//System.out.println(pth.getPositionAtTime(new MillisecondsTimePoint(100000)));
System.out.println(pth.getPositionAtTime(new MillisecondsTimePoint(0)).getPosition());
for (TimedPositionWithSpeed p : pth.getPathPoints()) {
System.out.println(p.getPosition());
System.out.println(p.getTimePoint());
}
System.out.println(pth.getPositionAtTime(new MillisecondsTimePoint(0)).getPosition());
}
for(TimedPosition p : pth.getEvenTimedPoints(500000)) {
System.out.println(p.getTimePoint());
System.out.println(p.getPosition());
}
}*/
}
@@ -27,17 +27,18 @@ public class PolarDiagramImpl implements PolarDiagram {
@Override
public void setWind(SpeedWithBearing newWind) {
wind = newWind;
northWest = wind.getBearing().add(new DegreeBearingImpl(0));
northEast = wind.getBearing().add(new DegreeBearingImpl(0));
southWest = wind.getBearing().add(new DegreeBearingImpl(0));
southEast = wind.getBearing().add(new DegreeBearingImpl(0));
wind = newWind;
northWest = wind.getBearing().add(new DegreeBearingImpl(-30));
northEast = wind.getBearing().add(new DegreeBearingImpl(30));
southWest = wind.getBearing().add(new DegreeBearingImpl(210));
southEast = wind.getBearing().add(new DegreeBearingImpl(150));
}
@Override
public SpeedWithBearing getSpeedAtBearing(Bearing bearing) {
return new KilometersPerHourSpeedWithBearingImpl(0, bearing);
if (bearing.equals(northEast) || bearing.equals(northWest)) return new KilometersPerHourSpeedWithBearingImpl(wind.getKilometersPerHour(), bearing);
if (bearing.equals(southEast) || bearing.equals(southWest)) return new KilometersPerHourSpeedWithBearingImpl(0.7*wind.getKilometersPerHour(), bearing);
return new KilometersPerHourSpeedWithBearingImpl(0.5*wind.getKilometersPerHour(), bearing);
}
@Override
@@ -1,26 +1,43 @@
package com.sap.sailing.simulator.impl;
import java.util.ArrayList;
import java.util.List;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.simulator.Boundary;
import com.sap.sailing.simulator.Path;
import com.sap.sailing.simulator.SailingSimulator;
import com.sap.sailing.simulator.SimulationParameters;
import com.sap.sailing.simulator.TimedPositionWithSpeed;
import com.sap.sailing.simulator.WindField;
public class SailingSimulatorImpl implements SailingSimulator {
SimulationParameters simulationParamaters;
SimulationParameters simulationParameters;
@Override
public void setSimulationParameters(SimulationParameters params) {
simulationParamaters = params;
simulationParameters = params;
}
@Override
public SimulationParameters getSimulationParameters() {
return simulationParamaters;
return simulationParameters;
}
@Override
public Path getOptimumPath() {
// TODO Auto-generated method stub
return null;
Boundary boundary = simulationParameters.getBoundaries();
WindField wf = simulationParameters.getWindField();
Position start = simulationParameters.getCourse().get(0);
Position end = simulationParameters.getCourse().get(1);
TimePoint startTime = new MillisecondsTimePoint(0);
List<TimedPositionWithSpeed> lst = new ArrayList<TimedPositionWithSpeed>();
//algorithm goes here
return new PathImpl(lst);
}
}
@@ -1,6 +1,7 @@
package com.sap.sailing.simulator.impl;
import java.util.List;
import java.util.Map;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.simulator.Boundary;
@@ -40,4 +41,9 @@ public class SimulationParametersImpl implements SimulationParameters {
return windField.getBoundaries();
}
@Override
public Map<String, Object> getSettings() {
return null;
}
}