tify"> 0, а властивості linear присвоюємо значення" істина ".
Далі розглядаємо випадок, коли кулька рухається по останньому поверху. Цей шлях прямолінійний. Перевіряємо, чи досяг даний кулька вершини стовпчика з кульок, вже потрапили в дану комірку. Щоб це було можливо, в міру досягнення кожним з кульок кінця заповнюється масив, що зберігає кількість кульок, що потрапили в кожну з комірок. Висота стовпчика з кульок, які вже досягли "дна" осередки, визначається формулою
,
де-кількість кульок, вже потрапили в дану комірку,-оператор виділення цілої частини. Якщо кулька досяг вершини стовпчика, то збільшуємо на один, а властивості end даного кульки присвоюємо значення "істина". Далі перевіряємо, чи є ще кульки, які не закінчили рух. Якщо це так, то параметру End , відповідальному за кінець анімації, присвоюємо значення "істина" і виводимо на екран остаточний розподіл кульок. Якщо кулька не досяг вершини стовпчика, то збільшуємо його вертикальну координату на величину, пропорційну dz (при числі поверхів, більшому трьох, на). p> Після закінчення прорахунку параметрів кожного з кульок необхідно виконати малювання чергового кадру, яке складається з трьох частин. По-перше, "стираємо" кульки минулого кадру спеціальною функцією, на вхід якої подаємо координати OldX і OldY кожного з кульок. Потім малюємо нові перемістилися кульки в точках з координатами (якщо не всі кульки досягли кінця), певними за допомогою вищеописаних формул, присвоюємо значення цих координат змінним OldX і OldY , і в- третіх малюємо кульки, що вже потрапили в осередки за допомогою спеціальної функції, на вхід якої подаємо поточний розподіл кульок по осередках.
Користувач може управляти режимом анімації за допомогою функцій "Старт", "Пауза", "Стоп". Функція "Старт" в режимі анімації запускає (продовжує) цикл побудови кадрів, "Пауза" призупиняє цей цикл, а "Стоп" зупиняє процес, після чого на екран виводиться остаточна картинка і розподіл. br/>
1.2 Блок-схема меню програми
В
1.3 Блок-схема алгоритму функції Timer1Timer (TObject * Sender)
В
В
В
2. Опис програми
2.1 Процедури
Основними процедурами, за допомогою яких реалізується виведення зображення на екран, є:
Init () - функція, инициализирующая значення глобальних змінних. Використовується щоразу перед формуванням нового розподілу. Залежно від розмірів поля малювання (канви) ініціалізує значення геометричних параметрів, а також створює масив структур, що визначають стан кожного з кульок в початковий момент часу. При цьому масив поворотів кожної кульки генерується випадковим чином, тобто й...