コード例 #1
0
        /// <summary>
        /// Initializes values for the bow animation.
        /// </summary>
        private void ComputeBowAnimationInitialValues(
            double p,
            double v,
            out double u0,
            out double u1,
            out double w0,
            out double w1,
            out double r0,
            out double r1,
            out double S,
            out double animationTime)
        {
            u0 = 0;
            u1 = MercatorCoordinate.Distance(_endMercatorCenter, _startMercatorCenter);

            w0 = 1.0 / Math.Pow(2, _startZoomLevel - 1);
            w1 = 1.0 / Math.Pow(2, _endZoomLevel - 1);

            if (u0 == u1)
            {
                S = Math.Abs(Math.Log(w1 / w0)) / p;

                // r0 and r1 are unused.
                r0 = 0;
                r1 = 1;
            }
            else
            {
                r0 = R(0, w0, w1, u0, u1, p);
                r1 = R(1, w0, w1, u0, u1, p);
                S  = (r1 - r0) / p;
            }

            animationTime = S / v;
        }