Пример #1
0
def withinArrivalZone(flightParams, state):
#(flightParams : FlightParameters) (state : FlightState) =
    airport = flightParams.DestinationAirport
    arrivalAltitude = airport.ArrivalAltitude
    arrivalDistance = airport.ArrivalDistance
    position = state.AircraftPosition
    altitude = Spatial.positionToAltitude(position)
    distance = Spatial.calculateDistance(Spatial.positionToLocation(position),
                                         Spatial.positionToLocation(airport.Position))
    result = altitude <= arrivalAltitude and distance <= arrivalDistance
    return result
Пример #2
0
def detect3DCollision(lineSegment, altitude, polyhedron):
    # (lineSegment:LineSegment) (altitude:float<Feet>) (polyhedron:Polyhedron) =
    #   // Check bound values
    #    assertGreaterEqualTo "altitude" (float altitude) "0.0" 0.0
    #    assertGreaterEqualTo "Zone LowerBound" (float polyhedron.LowerBound) "0.0" 0.0
    #   assertGreaterThan "Zone UpperBound" (float polyhedron.UpperBound) "LowerBound" (float polyhedron.LowerBound)

    segmentMidPoint = Spatial.calculateMidpoint(lineSegment)
    #// Check upper/lower bounds and then 2d collision detection
    return polyhedron.LowerBound < altitude and altitude < polyhedron.UpperBound \
        and Spatial.calculateDistance(segmentMidPoint, polyhedron.Polygon[0]) < 600.0 \
        and detect2DCollision(lineSegment, polyhedron.Polygon)
Пример #3
0
def calculateTimeFuelDistance(model, altitude, weight):
# (model:DescentModel) (altitude:float<Feet>) (weight:float<Pounds>) =
    time = calculateTime(model, altitude)
    fuel = calculateFuel(model, altitude)
    distance = Spatial.calculateDistance(model, altitude, weight)
    return (time,fuel,distance)