Графика в 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