mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
PolarDiagramImpl is functional
SailingSimulator only needs the algorithm
This commit is contained in:
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());
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
+8
-7
@@ -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
|
||||
|
||||
+22
-5
@@ -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);
|
||||
}
|
||||
}
|
||||
+6
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user