C# Windows Forms. Нужно переделать код (анимация), чтобы круг двигался по синусоиде, а не по кривой

Перед запуском нужно подключить обработчик Load и Paint и создать компонент таймер и включить его в свойствах.

{
public Form1()
{
InitializeComponent();
}
private int x1, y1, x2, y2;
private double a, t, fi;
private Pen pen = new Pen(Color.DarkRed, 2);
private void Form1_Load(object sender, EventArgs e)
{
x1 = ClientSize.Width / 2;
y1 = ClientSize.Height / 2;
a = 200;
fi = -0.5;
t = Math.Sin(fi);
x2 = x1 + (int)((3 * a * t) / (1 + t * t * t));
y2 = y1 - (int)((3 * a * t * t) / (1 + t * t * t));
}
private void Form1_Paint(object sender,
PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawEllipse(pen, x2, y2, 20, 20);
}
private void timer1_Tick(object sender, EventArgs e)
{
fi += 0.01;
t = Math.Tan(fi);
x2 = x1 + (int)((3 * a * t) / (1 + t * t * t));
y2 = y1 - (int)((3 * a * t * t) / (1 + t * t * t));
Invalidate();
}
}

>по синусоиде, а не по кривой
С каких это пор синусоида перестала быть кривой о_О?

эчпочмак

Добавить комментарий