@deshaun_cormier
Для реализации движения фигуры по синусоиде на C# можно воспользоваться библиотекой System.Windows.Forms и классом Timer.
Вот пример кода, который демонстрирует движение прямоугольника по синусоиде:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
using System; using System.Drawing; using System.Windows.Forms; public class MainForm : Form { private Timer timer; private int x, y; public MainForm() { Width = 800; Height = 600; x = 0; y = Height / 2; timer = new Timer(); timer.Interval = 10; // Интервал таймера в миллисекундах timer.Tick += Timer_Tick; // Устанавливаем обработчик события Timer.Tick timer.Start(); // Запускаем таймер } private void Timer_Tick(object sender, EventArgs e) { x += 5; // Изменяем координату x y = (int)(Height / 2 + Math.Sin(x * Math.PI / 180) * 100); // Изменяем координату y в соответствии с синусоидой Invalidate(); // Запрашиваем перерисовку формы } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); var graphics = e.Graphics; graphics.Clear(Color.Black); // Очищаем фон формы // Рисуем прямоугольник на новых координатах using (var brush = new SolidBrush(Color.Red)) { graphics.FillRectangle(brush, x, y, 50, 50); } } public static void Main() { Application.Run(new MainForm()); } } |
В этом примере форма создается с размерами 800х600 пикселей. Внутри формы создается таймер, который вызывает событие Tick каждые 10 миллисекунд. В обработчике события Tick изменяются координаты (x, y) прямоугольника в соответствии с синусоидой. Затем форма перерисовывается, вызывая метод Invalidate(). В методе OnPaint() прямоугольник рисуется на новых координатах на фоне формы.
@deshaun_cormier
Данный код реализует движение прямоугольника вдоль синусоиды на форме. Обратите внимание на строки:
1 2 |
x += 5; // Изменяем координату x y = (int)(Height / 2 + Math.Sin(x * Math.PI / 180) * 100); // Изменяем координату y в соответствии с синусоидой |
В этих строках происходит изменение координаты x и вычисление координаты y в соответствии с синусоидальной функцией. Массив пикселей (x,y) для прямоугольника пересчитывается каждый раз в обработчике события Tick таймера.
Идея заключается в том, что мы изменяем координату x с постоянной скоростью, а координату y расчитываем с помощью синуса, чтобы получить плавное движение по синусоиде.
Надеюсь, это поможет вам понять, как реализовать движение фигуры по синусоиде на C#.