ify"> Відмінною особливістю завдання є реалізація перетину кульок рухаються по траєкторії, що представляє окружність. Алгоритм визначення перетину виглядає наступним чином:
а) Виконати перебір всіх куль знаходяться в списку;
б) Отримати параметри кулі;
в) Параметри кожної кулі порівнюємо з усіма крім параметрів самого кулі;
г) Якщо відстань між центрами менше суми їх радіусів, то кулі перетинаються;
.3 Визначення математичного апарату, застосування якого необхідно в задачі
За умовами завдання кулі переміщаються по траєкторії, представленої у вигляді кола, і для визначення перетину використовувалася наступна формула
2. Реалізація основного класу програми
Основний клас програми забезпечує її візуальне уявлення (на малюнку 1.1 показана основна форма із зазначенням компонентів, що використовуються далі в лістингах), а також описує всі операції, виконувані в ході функціонування програми.
Рисунок 2.1 - Основна форма програми
При завантаженні форми проводиться створення області відображення, установка доступності виконання операцій, а також налаштування деяких властивостей стандартних діалогових вікон:
private void Form1_Load (object sender, EventArgs e)
{
/ / створення області малювання. Image=new Bitmap (pictureBox1. Width, pictureBox1. Height);
/ / створення поверхні відображення=new Traekt (pictureBox1, 1);
/ / запуск таймера. Enabled=true; _ED (false); _ED (false);
Del_ED (false);
}
Установка доступності виконання операцій реалізована у вигляді трьох методів:
private void Change_ED (bool Value)
{_ball. Enabled=Value; _TSM. Enabled=Value;. Enabled=Value;
}
private void Del_ED (bool Value)
{_ball. Enabled=Value; _TSM. Enabled=Value;. Enabled=Value;
}
private void Save_ED (bool Value)
{_balls. Enabled=Value; _TSM. Enabled=Value;. Enabled=Value;
}
2.1 Додавання кулі
Додавання кулі виконується з використанням розробленого діалогового вікна класу Form:
private void button1_Click (object sender, EventArgs e)
{
/ / змінна, що зберігає напрямок руху шаровv=0;
/ / створення діалогового окнаDialog=new Form2 ();
/ / установка початкових значень компонентів. Text="Додавання кулі»;
Dialog. Radius_TB. Text=«»;. Speed_TB. Text=«»;
/ / виклик вікна та визначення резултат його роботи
if (Dialog. ShowDialog () == DialogResult. OK)
{(Dialog. radioButton1. Checked)=- 1; (Dialog. radioButton2. Checked)=1;
/ / додаванн...