p>
Traekt: ISaveLoad
{int x, y;// координати центру поверхні рісованіяPictureBox Space_pb;// посилання на реальну поверхню рісованіяint _nextNum, _lastNum;// поля, що зберігають номера такого і попереднього шарікаTraekt (PictureBox newPB, int next)//основний конструктор класу
{_ pb=newPB;=Space_pb.Image.Width/2;=Space_pb.Image.Height/2; c=Graphics.FromImage (Space_pb.Image); _ pb.Refresh () ;. Dispose ();
_ nextNum=1;
}
//реалізація інтерфейсу, що виробляє запис
//в текстовий файлvoid Save (StreamWriter sw)
{. WriteLine (_lastNum);
}
//реалізація інтерфейсу, що виробляє запис
//в двійковий файлvoid Save (BinaryWriter bw)
{. Write (_lastNum);
}
//реалізація інтерфейсу, що виробляє читання
//з текстового файлаvoid Load (StreamReader sr)
_ nextNum=Convert.ToInt32 (sr.ReadLine ()) + 1;
//реалізація інтерфейсу, що виробляє читання
//із двійкового файлаvoid Load (BinaryReader br)
_ nextNum=br.ReadInt32 () + 1;
//властивість номерів куль дл доступу ізвнеint nextN
{{return _nextNum ++; } {_lastNum=Value; }//Отримуємо номер при створенні в Form1
}
//властивість отримання доступу до компоненту, на якому виробляється отображеніеPictureBox S_picture {return Space_pb;}
//властивість координати Х, для достпа ззовні int S_x {return x; }
//властивість координати У, для доступу ізвнеint S_y
{{return y; }
}
1.2 Побудова алгоритму реалізації
При функціонуванні програми можуть виконуватися такі операції:
- додавання кульки;
- видалення кульки;
редагування параметрів кульки;
переміщення кульок по траєкторії, що представляє собою коло;
завантаження, або збереження параметрів кульки в окремий файл;
Відмінною особливістю завдання є реалізація перетину кульок рухаються по траєкторії, що представляє окружність. Алгоритм визначення перетину виглядає наступним чином:
а) Виконати перебір всіх куль знаходяться в списку;
б) Отримати параметри кулі;
в) Параметри кожної кулі порівнюємо з усіма крім параметрів самого кулі;
г) Якщо відстань між центрами менше суми їх радіусів, то кулі перетинаються;
. 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); _ 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)
save_balls.Enabled=Value; _TSM.Enabled=Value; .Enabled=Value;
}
...