Графика в C# - C#

Формулировка задачи:

По двум осям непрерывно движутся два объекта. Достигая границ окна, они возвращаются на исходную, и так постоянно. Нужно реализовать алгоритм, который не будет давать объектам пересекаться при прохождении смежной точки осей. Много думал, ничего дельного не получается. Порекомендуйте, как можно лучше сделать это. Единственное, до чего я пока додумался, это использовать таймеры. По тику таймера объект перемещается по оси до ее конечной точки. Затем этот таймер останавливается и запускается второй, который возвращает его на исходную. И так для двух объектов.

Код к задаче: «Графика в C# - C#»

textual
            if (distance(a.Center, b.Center) > 2.2f * (a.Radius + b.Radius)) a.Update(dt);
            b.Update(dt);
            if (b.Bounds.Left <= 0f || b.Bounds.Right >= this.ClientSize.Width) b.Velocity = new PointF(b.Velocity.X * -1f, 0f);
            if (a.Bounds.Top <= 0f || a.Bounds.Bottom >= this.ClientSize.Height) a.Velocity = new PointF(0f, a.Velocity.Y * -1f);

13   голосов, оценка 4.077 из 5


СОХРАНИТЬ ССЫЛКУ