//constructor
        /// <summary>
        /// VerticalSinusoalMovement, constuctor
        /// </summary>
        /// <param name="minX">Min X Value</param>
        /// <param name="maxX">Max X Value</param>
        /// <param name="x">Inital X Value</param>
        /// <param name="deltaY">Delta Y</param>
        /// <param name="period">Period (In Ticks)</param>
        public VerticalCosusodalMovement(double minX, double maxX, double x, double period, double deltaY)
            : base(0.0, deltaY)
        {
            double amplitude = (maxX - minX) / 2;
            double offset = maxX - amplitude;
            double phase = Math.Acos((offset - x) / amplitude) + (2 * Math.PI);
            double altered = 0.2 * Math.PI / period;

            _cosineMovement = new CosineMovement(amplitude, altered, phase, offset);
        }
        //constructor
        /// <summary>
        /// VerticalSinusoalMovement, constuctor
        /// </summary>
        /// <param name="minY">Min Y Value</param>
        /// <param name="maxY">Max Y Value</param>
        /// <param name="y">Inital Y Value</param>
        /// <param name="deltaX">Delta X</param>
        /// <param name="period">Period (In Ticks)</param>
        public HorizontalCosusodalMovement(double minY, double maxY, double y, double period, double deltaX)
            : base(deltaX, 0.0)
        {
            double amplitude = (maxY - minY) / 2;
            double offset = maxY - amplitude;
            double phase = Math.Acos((offset - y) / amplitude) + (2 * Math.PI);
            double altered = 0.2 * Math.PI / period;

            _cosineMovement = new CosineMovement(amplitude, altered, phase, offset);
        }