BouncingBall.MainWindow.UpdateAfterimages C# (CSharp) Метод

UpdateAfterimages() приватный Метод

private UpdateAfterimages ( TimeSpan time ) : void
time TimeSpan
Результат void
        private void UpdateAfterimages(TimeSpan time)
        {
            var afterImagePositions = scene.GetAfterImages(time).ToArray();
            var visibleFrom = scene.MaxAfterimageCount - afterImagePositions.Length;
            var opacityInterval = 1.0 / scene.MaxAfterimageCount;
            var opacityFrom = (1.0 -
                               (time.Ticks % scene.AfterimageInterval.Ticks) / (double)scene.AfterimageInterval.Ticks) *
                              opacityInterval;
            var i = 0;

            for (; i < visibleFrom; i++)
            {
                GetAfterimage(i).Visibility = Visibility.Hidden;
            }

            for (; i < scene.MaxAfterimageCount; i++)
            {
                var afterimage = GetAfterimage(i);
                var position = afterImagePositions[i - visibleFrom];

                afterimage.Visibility = Visibility.Visible;
                afterimage.SetValue(Canvas.LeftProperty, position.X);
                afterimage.SetValue(Canvas.TopProperty, position.Y);
                afterimage.Opacity = (opacityFrom + i * opacityInterval) * 0.2;
            }
        }