едках. p> Графічна реалізація падіння і розподілу кульок: розглянемо спочатку процес побудови остаточної картинки без анімації. Природно, що він буде залежати від параметрів k , N і від розмірів вікна width і height , в якому відображається Дошка Гальтона. Нижче наведено креслення Дошки з параметрами і формули для розрахунку цих параметрів, виведені з геометричних міркувань і дозволяють виконувати побудову Дошки Гальтона з довільним числом осередків і з урахуванням числа падаючих кульок (від цього залежить максимальна висота "стовпчика" з кульок в комірці) для поля малювання довільних ширини і висоти:
В
Рис.1.
Формула для розрахунку ширини однієї панелі:
В
де width - ширина поля малювання, ramka - ширина рамки, k - кількість осередків;
Формула для розрахунку радіуса падаючих кульок:
В
Формула для розрахунку висоти нижніх осередків, в які потрапляють кульки
В
де N - загальне число падаючих кульок.
Формула для розрахунку висоти дошки:
В
де height - висота поля малювання.
Формула для розрахунку висоти однієї панелі:
В
Формула для розрахунку висоти "куточка" панелі:
В
де alfa - кут нахилу звуження панелі до горизонтальної осі.
Формула для розрахунку вертикальної частини панелі:
В
Після побудови дошки з панелями і каналами необхідно намалювати кульки, вже розподілені по осередках. Для цього використовується функція, на вході має масив розподілу кульок по осередках. p align="justify"> дошка Гальтон програма інтерфейс
Тепер перейдемо до створення анімації. Стан кожної кульки в процесі анімації описується наступний полів:
start (логічний тип) - визначає, чи почав кулька рух;
end (логічний тип) - чи закінчив кулька рух;
stage (натуральне число) - номер поверху, на якому знаходиться кулька;
z (ціле число) - координата по висоті від початку поточного поверху;
linear (логічний тип) - визначає, чи досяг кулька похила ділянка даного поверхи;
Lstage (логічний тип) - чи досягнуто останній поверх;
turn (масив цілих чисел) - містить інформацію про поворотах кульки у вигляді впорядкованого набору +1 або - 1;
OldX (ціле число) - координата Х кульки в минулий момент часу;
OldY (ціле ч...