Задание
Построить правильный многоугольник. Дополнительно реализовать вращение многоугольника, окраска разноцветным или монотонным цветом,задать разный радиус многоугольника, толщину линий прорисовки и скорость вращения. Также, реализовать очистку поля, увеличение/уменьшение радиуса по прокрутке колесика мыши, толщину контура(Ctrl+колесико мыши) и количества вершин(Колесико мыши+Shift).
Функционал программы
- Отметка количества вершин многоугольника
- Отметка радиуса
- Выбор цвета многоугольника (Моно или разноцветный)
- Выбор тощины линий
- Выбор галочки - соединять вершины или нет
- Выбор скорости вращения многоугольника
- По кнопке "Рисовать" производится прорисовка многоугольника по выбранным критериям
- По кнопке "Вращать" производится его вращение
- Кнопка "Очистить" очищает PictureBox
- Кнопка "Справка" отображает информацию как управлять настройками многоугольника колесиком мыши и клавишами.
Фрагмент программного кода
public partial class Form1 : Form
{
int n,r,wpen,xc,yc;//инифиализация переменных
Graphics gr;//прорисовка графики многоугольника
Point[]ver;//прорисовка точек
double ugol;//угол при построении
double ugolvr;//угол вращения
public Form1()
{
InitializeComponent();
pictureBox1.MouseWheel += new MouseEventHandler(this.pictureBox1_MouseWheel);//включение колесика мыши по действиям на пикчебокс
}
private void pictureBox1_MouseWheel(object sender, MouseEventArgs e)//обработка действий колесика мыши по пикчебокс
{
try
{
if (e.Delta > 0&& ModifierKeys != Keys.Control&& ModifierKeys != Keys.Shift)//обработка конечных (пограничных) значений радиуса по колесику
{
trackBar1Radius.Value += 1;
}
else if(ModifierKeys != Keys.Control&& ModifierKeys != Keys.Shift)
{
trackBar1Radius.Value -= 1;
}
}
catch (System.ArgumentOutOfRangeException)
{
trackBar1Radius.Value = 2;
}
try
{
if (ModifierKeys == Keys.Control)//обработка конечных (пограничных) значений толщины по колесику
{
if (e.Delta > 0)
{
trackBar2Tolshina.Value += 1;
}
else
{
trackBar2Tolshina.Value -= 1;
}
}
}
Скриншот архива с проектом

Пояснения по запуску программы
Исходный код на C# WinForms для Visual Studio.
Телеграм
-