diff options
Diffstat (limited to 'Planification_vol/src/planification')
| -rw-r--r-- | Planification_vol/src/planification/App.java | 79 | ||||
| -rw-r--r-- | Planification_vol/src/planification/Waypoint.java | 49 |
2 files changed, 128 insertions, 0 deletions
diff --git a/Planification_vol/src/planification/App.java b/Planification_vol/src/planification/App.java new file mode 100644 index 0000000..cd51bc1 --- /dev/null +++ b/Planification_vol/src/planification/App.java @@ -0,0 +1,79 @@ +package planification; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Scanner; + +public class App { + + public static void main(String[] args) throws IOException { + + Scanner sc = new Scanner(System.in); + String line = sc.nextLine(); + + double lat; + double lon; + double longueur; + double largeur; + double alt; + double k; + double nbWaypoint; + + String[] parts = line.split(" "); + lat = Double.parseDouble(parts[0]); + lon = Double.parseDouble(parts[1]); + longueur = Double.parseDouble(parts[2]); + largeur = Double.parseDouble(parts[3]); + alt = Double.parseDouble(parts[4]); + k = Double.parseDouble(parts[5]); + nbWaypoint= Double.parseDouble(parts[6]); + + double zForEachWaypoint = alt / nbWaypoint; + + ArrayList<Waypoint> waypoints = new ArrayList<Waypoint>(); + + double r = Math.max(longueur, largeur) + 3; + double z = 0; + double theta = 0; + double gimbal = 0; + + for(int i = 0 ; i < nbWaypoint ; ++i) { + + theta = z / k; + double x = r * Math.cos(theta); + double y = r * Math.sin(theta); + + waypoints.add(new Waypoint(x, y, z, theta, gimbal, true)); + System.out.println("x = " + x + " y = " + y + " z = " + z + " t = " + theta); + + z += zForEachWaypoint; + + } + + z = alt; + for(int i = 0 ; i < nbWaypoint ; ++i) { + + theta = z / k + 180; + double x = r * Math.cos(theta); + double y = r * Math.sin(theta); + + waypoints.add(new Waypoint(x, y, z, theta, gimbal, true)); + System.out.println("x = " + x + " y = " + y + " z = " + z + " t = " + theta); + + z -= zForEachWaypoint; + + } + + BufferedWriter writer = new BufferedWriter(new FileWriter("./flightplan.txt")); + for(int i = 0 ; i < waypoints.size() ; ++i) { + Waypoint wp = waypoints.get(i); + String s = wp.getLat() + ":" + wp.getLon() + ":" + wp.getAlt() + ":" + wp.getDirection() + ":" + wp.getGimbal() + ":" + wp.isPhoto() + "\n"; + writer.write(s); + } + writer.close(); + + } + +} diff --git a/Planification_vol/src/planification/Waypoint.java b/Planification_vol/src/planification/Waypoint.java new file mode 100644 index 0000000..9efd85d --- /dev/null +++ b/Planification_vol/src/planification/Waypoint.java @@ -0,0 +1,49 @@ +package planification; + +public class Waypoint { + + private double lat; + private double lon; + private double alt; + private double direction; + private double gimbal; + private boolean photo; + + public Waypoint(double lat, double lon, double alt, double turnDegree, double gimbal, boolean photo) { + super(); + this.lat = lat; + this.lon = lon; + this.alt = alt; + this.direction = direction; + this.gimbal = gimbal; + this.photo = photo; + } + + public double getLat() { + return lat; + } + + public double getLon() { + return lon; + } + + public double getAlt() { + return alt; + } + + public double getDirection() { + return direction; + } + + public double getGimbal() { + return gimbal; + } + + public boolean isPhoto() { + return photo; + } + + + +} + |
