Направление развития¶
Здесь собраны открытые планы. Уже выпущенные изменения находятся в changelog.
Рендер и экспорт¶
- Программный render API одним вызовом. Сейчас MP4/GIF рендерятся через CLI
Manim. Метод
render(ggb_path, style=..., output_format=..., size=...)позволит встраивать AnimaGeo в серверы и конвейеры без запуска shell-команд. - Входные данные в памяти. Принимать
bytes/BytesIOдля.ggbи JSON стиля наряду с путями к файлам. - Snapshot-тесты рендера. Геометрическое ядро хорошо покрыто тестами, но
CreateMObject, SVG и CLI ещё требуют ручной проверки. Golden snapshots должны зафиксировать визуальный результат.
Покрытие GeoGebra¶
Большинство повседневных команд реализовано: 477 сигнатур диспетчеризации доступны через 100 автоматически найденных фабрик DSL. Известные пробелы:
- точные/символьные
LocusиLocusEquation— сейчасLocusявляется дискретизированной ломаной; RadicalAxis,Powerдля степени точки относительно окружности;- точная
Circumferenceэллипса — сейчас используется приближение Рамануджана; OsculatingCircle,Curvature,ConjugateDiameter,PathParameter;- отображаемые типы
booleanкак checkbox,list,image.
Размещение подписей¶
Solver достиг целевого качества для статических раскладок; рекомендуемый пресет находится в разделе Стили. Оставшиеся идеи:
- доработка leader lines в плотных сценах с подавлением бесполезных выносок;
- мягкое отталкивание подписей между ключевыми кадрами, чтобы избежать временных пересечений в середине анимации.
Ключевые кадры¶
- событие акцентирования
passing_flash; - пиксельно-инвариантный zoom камеры в смысле GeoGebra
ZoomIn, когда геометрия масштабируется, а пиксельные декорации — нет. Текущий трек@cameraкинематографический и масштабирует всё вместе.
Удобство API¶
- Цепочки методов стиля вроде
element('s').setDashed(0.65).setOpacity(0.5)как сокращение для записей вelem.style[...].
Распространение¶
- Опубликовать JSXGraph runtime (
web/runtime,web/web-component) в npm.
Предложения и изменения приветствуются — см. CONTRIBUTING.md.