ShapeLab — настольное приложение для построения геометрических фигур, визуализации их на координатной плоскости и вычисления площади, периметра и других характеристик.
- 15+ фигур: круг, квадрат, прямоугольник, треугольник (обычный, прямоугольный, равносторонний), эллипс, ромб, параллелограмм, трапеция, полукруг, кольцо, звезда, капсула, многоугольник по точкам.
- Статистика в реальном времени: формулы площади и периметра, промежуточные величины (радиус, диаметр, диагонали, гипотенуза, длина дуги).
- Безопасный вычислитель: можно вводить
2*pi,sqrt(16),5^2,sin_deg(30),hypot(3,4)— без риска выполнить произвольный код. - Навигация: зум колесом мыши, панорама средней/правой кнопкой,
«вписать всё» (
F5). - Инструменты: линейка, транспортир, рамка выделения.
- Единицы измерения: мм, см, дм, м, км.
- Редактирование: перетаскивание, изменение размера за угол, поворот, стили (заливка/обводка), группировка.
- Слои: на передний/задний план, выше/ниже на слой.
- Несколько сцен: переключение через вкладки.
- Undo/Redo:
Ctrl+Z/Ctrl+Y. - Экспорт: JSON, SVG, PNG, PDF-отчёт.
- Тёмная тема, сетка, оси координат, подсказки вершин.
Требуется Python 3.12.
git clone https://github.com/ваш-логин/shapelab.git
cd shapelab
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux / macOS
pip install -r requirements.txtTkinter входит в стандартную библиотеку Python. На Linux может
потребоваться отдельный пакет:
sudo apt install python3-tkpython main.py- Выберите фигуру во вкладке «Создание» и заполните параметры.
- Нажмите «+ Добавить» — фигура появится на холсте.
- Кликните по фигуре, чтобы увидеть её параметры в «Статистике».
- Потяните за угол рамки выделения — фигура масштабируется.
- Переключите инструмент «Линейка» (
2) и кликните две точки. - Нажмите
F5, чтобы вписать всё содержимое сцены в окно.
| Комбинация | Действие |
|---|---|
Ctrl+Z / Ctrl+Y |
Отменить / повторить |
Ctrl+C / Ctrl+V / Ctrl+D |
Копировать / вставить / дублировать |
Ctrl+A |
Выделить всё |
Ctrl+G / Ctrl+Shift+G |
Группировать / разгруппировать |
Ctrl+S / Ctrl+O |
Сохранить / загрузить JSON |
Ctrl+N |
Новая сцена |
Ctrl+U |
Единицы измерения |
F5 |
Вписать всё |
1 … 4 |
Инструменты: выбор / линейка / транспортир / рамка |
Esc |
Сбросить текущее измерение |
Delete |
Удалить выделенное |
| Формат | Что внутри | Зависимость |
|---|---|---|
| JSON | сцена с фигурами | — |
| SVG | векторный рисунок холста | — |
| PNG | растровый рисунок холста | pillow |
| отчёт с таблицей параметров | reportlab |
PR и issues приветствуются. Если добавляете новую фигуру — достаточно
написать класс-наследник Shape и зарегистрировать его в
App.SHAPE_CLASSES.
MIT — см. LICENSE.txt.