Нарисовать спираль
Создадим новый проект Windows Forms App
public Form1()
{
InitializeComponent();
DoubleBuffered = true; // включим двойную буферизацию
Paint += Form1_Paint; // подпишемся на событие Paint (отрисовки) формы
}
Для отрисовки спирали будем двигаться по ней увеличивая текущий угол и вычисляя текущую позицию (координаты точки) для данного угла, постепенно отрисовывая таким образом линию спирали.
private void Form1_Paint(object? sender, PaintEventArgs e)
{
var gr = e.Graphics;
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; // включаем сглаживание
gr.Clear(Color.White); // очищаем экран белым цветом
const int turnsQty = 5; // количество полных витков спирали
const int degreeIncrement = 3; // приращение угла на каждой итерации цикла, чем меньше число, тем глаже будет спираль
var centerX = ClientRectangle.Width / 2;
var centerY = ClientRectangle.Height / 2;
double radiusStep = 50; // приращение радиуса на каждый полный оборот спирали 360°
PointF? prevPoint = null;
for (int ang = 0; ang < turnsQty * 360; ang += degreeIncrement) // проходимся циклом от 0 градусов до количество витков умноженное на 360 градусов.
{
var angRadians = ang * Math.PI / 180.0; // переводим градусы в радианы
var radius = (ang / 360.0) * radiusStep; // вычисляем радиус для текущего угла на спирали
// зная радиус и угол вычисляем координаты точки на спирали
var x = centerX + radius * Math.Cos(angRadians);
var y = centerY + radius * Math.Sin(angRadians);
PointF point1 = new PointF((float)x, (float)y);
if (prevPoint != null)
gr.DrawLine(Pens.Black, prevPoint.Value, point1); // рисуем линию от предыдущей точки до текущей (вычисленной на этой итерации)
prevPoint = point1; // сохраняем точку вычисленную на этой итерации как предыдущую
}
}Получим следующий результат

Готовый проект можно найти здесь
Упражнения
1. Переделать цикл таким образом чтобы все расчеты сразу производились в радианах и не требовался пересчет на каждой итерации