Пример #1
0
def calculateGroundVelocity(airspeed, groundDirection, wind):
    windDirection = Spatial.calculateRadians(wind)
    windspeed = Spatial.calculateMagnitude(wind)
    aDirection = (windDirection - groundDirection) % ( 2 * math.pi)
    precision = 1e-6
    
    # no wind, groundspeed is airspeed
    if windspeed <= precision:
        return airspeed
    elif math.fAbs(aDirection) <= precision: # then // Same direction
        return airspeed + windspeed
    elif math.fabs(aDirection - math.pi) <= precision: # then // Opposite direction
        return airspeed - windspeed
    else:
        w = math.asin((windspeed * math.sin(aDirection)) / airspeed)
        g = math.pi - aDirection - w
        return airspeed * math.sin(g) / math.sin(aDirection)
Пример #2
0
def calculateGroundVelocity(airspeed, groundDirection, wind):
    windDirection = Spatial.calculateRadians(wind)
    windspeed = Spatial.calculateMagnitude(wind)
    aDirection = (windDirection - groundDirection) % (2 * math.pi)
    precision = 1e-6

    # no wind, groundspeed is airspeed
    if windspeed <= precision:
        return airspeed
    elif math.fAbs(aDirection) <= precision:  # then // Same direction
        return airspeed + windspeed
    elif math.fabs(aDirection -
                   math.pi) <= precision:  # then // Opposite direction
        return airspeed - windspeed
    else:
        w = math.asin((windspeed * math.sin(aDirection)) / airspeed)
        g = math.pi - aDirection - w
        return airspeed * math.sin(g) / math.sin(aDirection)
Пример #3
0
def calculateSpeed(v):
    # v is vector
    m = Spatial.calculateMagnitude(v)
    return m