Обзор примеров
Каталог src/drawzero/examples содержит 21 сценарий, которые авторы библиотеки
используют как регрессионные тесты и обучающие демо. Они демонстрируют реальные
приёмы из исходного кода и дополняют разделы документации. В таблице ниже указано,
какую тему поднимает каждый файл и за какими функциями стоит следить, когда вы
изучаете пример или ищете отправную точку для своей задачи.
| Файл | О чём пример | На что обратить внимание |
|---|---|---|
00_hello_world.py |
Первый вывод на холст | Последовательность from drawzero import *, вызов run() и базовая рамка окна. |
01_grid_and_coordinates.py |
Система координат | Вспомогательная сетка grid(), подписи текста и расположение фигур по известным точкам. |
02_loops_and_rgb_colors.py |
Генеративное искусство | Цикл for, случайные RGB‑кортежи и построение полос разной высоты. |
03_simple_objects.py |
Каталог примитивов | Все основные функции рисования: линии, окружности, многоугольники, эллипсы и выравнивание текста. |
04_loops_sin_plot.py |
Графики функций | Построение синусоиды из коротких отрезков с шагом по оси X. |
05_points.py |
Векторный помощник Pt |
Арифметика, нормализация и черепашьи операции Pt в циклах. |
06_turtle_style.py |
Черепашьи многоугольники | Повороты Pt, конструирование правильных многоугольников и заливка. |
07_animation_circles.py |
Минимальная анимация | Связка tick(), clear() и параметров окружности, которые меняются каждый кадр. |
08_animation_traffic_light.py |
Машина состояний | Комбинация функций рисования с sleep() для плавного переключения цветов. |
09_animation_rectangles.py |
Сложные траектории | Использование Pt, прозрачности и условных эффектов для движения нескольких объектов. |
10_animation_planets.py |
Орбитальная система | Расчёт кругового движения планеты и спутника с перерисовкой на каждом кадре. |
11_transparency_and_line_width.py |
Прозрачность и обводка | Сравнение значений alpha и line_width на разных примитивах. |
12_images.py |
Работа с изображениями | Загрузка cat.png, масштабирование и использование альфа‑канала при выводе. |
13_gradients.py |
Помощник Gradient | Создание палитр и их визуализация в виде составных прямоугольников. |
14_animation_close_vertex.py |
Ближайшие соседи | Случайные вершины Pt, линии между ближайшими парами и счётчик FPS. |
15_animation_firework.py |
Система частиц | Классы Particle/Firework, обновление физики и постэффекты на градиентах. |
16_keyboard_and_mouse.py |
Обработка ввода | Глобальные очереди клавиатуры и мыши, слежение за курсором и ввод текста. |
17_mouse_tube.py |
Светящийся след мыши | mouse_pos() на каждом кадре, нарастающие круги и плавное затухание. |
18_game_stars.py |
Псевдо‑3D полёт | Датаклассы, управление WASD/QE и перемещение звёзд с перспективой. |
19_game_colors.py |
Игра на реакцию | Сравнение цвета текста и фона, обработка кликов и штраф по таймеру. |
20_game_racing.py |
Гоночный экран на двоих | Индивидуальные привязки клавиш, прокрутка трека и отдельный счёт для игроков. |
99_errors.py |
Сообщения об ошибках | Примеры исключений и логирование диагностики в режиме EJUDGE_MODE. |
Все эти файлы можно безопасно импортировать: тесты проекта делают именно так, чтобы
убедиться в корректности API. Если вы добавляете собственный пример, оставляйте
бесконечные циклы только внутри блока if __name__ == "__main__": или заменяйте их
конечными циклами, чтобы импорт не зависал.