Содержание статьи
Ещё в начале карьеры учителя физики не нашёл тупого быстрого инструмента создания графиков. Тут бы пояснить, что графики, которые мне были нужны, без проблем можно было создавать с помощью привычных всем программ, но это было долго. А я всего-то хотел, чтобы была возможность быстро создавать графики с подписями к осям, единицами измерения и строить линии по точкам, например для кинематики.
Сначала хотел чтобы мне такую программку написал школьник активный в информатике в рамках проектной деятельности. Но мои желания возникли вместе с наступлением вайбкодинга, а школьники не самые надёжные товарищи😏, так что решил сделать сам. Ровно то, что и хотел мне написал Claude за 2 минуты. А потом я подумал, а почему бы не сделать geogebra+desmos+мои личные фишки, раз вайбкодинг такие возможности стал давать. Начал долгий путь в Claude. Где-то неделю по 2-3 часа внесение+тестирование+debugging и… меня заблокировали. Видимо поняли, что я из России. Продолжил на новой версии Grok, но он что-то пока не очень. Gemini тоже не тянет, китайские пока тоже не всё хорошо делают. Спасибо ChatGPT за их интернациональность😏. Последняя Sol 5.6 неплохо справилась. А Claude что-то совсем жестить стали, я создал новый аккаунт, всего два тестовых чата по фигне и уже через 5 часов заблокировали.
Продукт:
Описание:
Приложение состоит из двух основных рабочих режимов — 2D и 3D. В обоих режимах слева находятся выражения, параметры и список созданных объектов, а основную часть окна занимает интерактивный холст. Объекты можно выделять, перемещать, скрывать, перекрашивать, переставлять по слоям и редактировать через карточку свойств.
Главный принцип P.S.Euclid — любое построение должно оставаться живым. Если изменить исходную точку, параметр или формулу, все зависимые объекты пересчитываются автоматически.
Выражения и графики
Редактор выражений поддерживает несколько способов задания математических объектов:
-
обычные функции вида y=f(x);
-
функции вида x=f(y);
-
полярные кривые;
-
параметрические кривые;
-
неявные уравнения, например x²+y²=16;
-
неравенства и системы неравенств;
-
цепочки сравнений;
-
наборы точек;
-
трёхмерные функции и поверхности;
-
параметрические и неявные объекты в 3D.
Синтаксис сделан близким к привычной математической записи. Знак умножения можно опускать: приложение понимает 2x, 3sin(x) и похожие конструкции. Поддерживаются тригонометрические и обратные тригонометрические функции, логарифмы, экспонента, модуль, корни, гиперболические функции, округление, минимум, максимум и другие операции. Есть константы π и e, а также пользовательские функции.
У каждого выражения настраиваются цвет, видимость, толщина и тип линии, прозрачность, диапазоны параметров и условие отображения. Например, отдельный объект можно показывать только при определённом значении параметра.
Числа внутри формулы можно автоматически превратить в буквенные параметры. После этого для них появляются слайдеры с настраиваемыми минимумом, максимумом и шагом. Параметры можно менять вручную или запустить их автоматическое движение, превратив статическое построение в анимацию.
Для функций вида y=f(x) приложение умеет отмечать особые точки: нули, экстремумы, пересечения графиков и пересечение с осью ординат. Координаты найденных точек подписываются непосредственно на холсте.
Данные и аппроксимация
Помимо формул, P.S.Euclid работает с экспериментальными данными. Точки можно вводить вручную, создавать кликами по координатной плоскости или импортировать из CSV-файла.
Для набора точек доступна аппроксимация. Полученная модель добавляется на сцену как самостоятельное выражение и перестраивается вместе с исходными данными. Это позволяет использовать приложение не только для иллюстрации готовых функций, но и для обработки результатов измерений, лабораторных работ и небольших учебных исследований.
Для выражений также можно открыть таблицу значений. Таким образом, формула, график, набор точек и численное представление остаются связаны между собой.
Динамическая геометрия в 2D
Второй крупный блок приложения — геометрический редактор.
В нём доступны свободные точки, точки на объектах, середины отрезков и точки пересечения. Можно строить:
-
отрезки, прямые, лучи, векторы и ломаные;
-
перпендикулярные и параллельные прямые;
-
серединные перпендикуляры и биссектрисы;
-
касательные;
-
многоугольники и правильные многоугольники;
-
окружности несколькими способами;
-
дуги, полуокружности и секторы;
-
эллипсы, параболы, гиперболы и коники по пяти точкам.
Отдельные инструменты измеряют расстояния, углы, площади и наклон прямых, а также определяют взаимное положение объектов.
Построения являются зависимыми. Например, прямая, проведённая через две точки, будет следовать за ними; точка пересечения переместится при изменении исходных объектов; окружность изменит радиус вместе с задающим её отрезком. При удалении родительского объекта приложение корректно обрабатывает зависящие от него элементы.
Есть и геометрические преобразования: отражение относительно прямой или точки, перенос, поворот, масштабирование и инверсия относительно окружности.
Инструмент геометрического места точек позволяет выбрать движущуюся точку и зависимый от неё объект, после чего приложение просчитывает траекторию движения. Для отдельных точек можно включить след — на холсте будет постепенно накапливаться пройденный путь.
Рисование и оформление
Математическую сцену можно дополнять обычными графическими элементами.
В приложение встроены карандаш, ластик, текстовые подписи, вставка изображений и инструмент распознавания нарисованных фигур. Если от руки провести достаточно прямую линию, она превращается в отрезок. Замкнутый контур может быть распознан как окружность или многоугольник.
Подписи осей и текстовые объекты поддерживают расширенный TeX-lite. Можно записывать дроби, корни, суммы, интегралы с пределами, векторы, акценты, системы уравнений, матрицы, масштабируемые скобки и математические символы. Это позволяет оформлять на одном холсте не только чертёж, но и практически полноценное объяснение решения.
На сцену также можно добавлять интерактивные элементы: кнопки, слайдеры, флажки и поля ввода. Они связываются с параметрами построения и позволяют превращать обычный чертёж в небольшую интерактивную модель или учебный тренажёр.
Настройка координатной системы
Координатная плоскость настраивается независимо от самих объектов.
Можно менять диапазоны осей, шаг и толщину сетки, толщину координатных осей, подписи и единицы измерения. Масштаб по X и Y регулируется как совместно, так и независимо.
Поддерживаются линейные и логарифмические шкалы. Логарифмический режим можно включить отдельно для каждой оси, поэтому доступны как полулогарифмические, так и log-log графики.
Для физических и прикладных задач предусмотрен выбор отображаемых квадрантов. Например, можно оставить только область положительных значений обеих координат.
Ещё одна возможность — разрывы осей. Они позволяют убрать из изображения неинформативный диапазон и одновременно показать удалённые друг от друга участки графика. При добавлении разрыва приложение автоматически расширяет рабочий диапазон, не меняя выбранный пользователем масштаб оставшейся части.
Переход между 2D и 3D
Двумерный и трёхмерный режимы не изолированы друг от друга.
Видимые 2D-объекты можно перенести в пространство, поместив их в плоскость XY при z=0. Точки, прямые, многоугольники, окружности и графики становятся частью трёхмерной сцены.
Обратная операция проецирует 3D-объекты на плоскость XY. Это удобно, когда пространственное построение нужно использовать как основу для плоского чертежа или иллюстрации.
Геометрия в пространстве
В 3D-режиме можно создавать точки, середины, отрезки, лучи, прямые, векторы и пространственные многоугольники.
Поддерживаются плоскости, параллельные и перпендикулярные плоскости, линии пересечения двух плоскостей, точки пересечения прямой и плоскости, расстояния и пространственные сечения.
Из объёмных объектов доступны кубы, призмы, пирамиды, конусы, цилиндры и сферы. Часть тел можно построить как готовый объект с числовыми параметрами, а часть — непосредственно по точкам на сцене.
Объекты редактируются не только через числовые поля. Для них предусмотрены визуальные манипуляторы:
-
стрелки перемещения вдоль координатных осей;
-
кольца поворота вокруг локальных осей;
-
свободное вращение с помощью аркбола;
-
интерактивное масштабирование.
Камеру можно свободно вращать, а также переключать на фронтальный, горизонтальный и профильный виды. Для учебных чертежей предусмотрен «школьный» стиль отображения тел: невидимые рёбра показываются пунктиром, а прозрачность граней регулируется отдельно.
Универсальные 3D-пересечения
Одна из центральных возможностей P.S.Euclid — поиск пересечений между пространственными объектами разных типов.
В одной операции можно использовать как геометрические объекты, созданные инструментами, так и кривые или поверхности, заданные формулами. Поддерживаются пересечения:
-
параметрических кривых;
-
неявных кривых;
-
пространственных ломаных;
-
плоскостей и ограниченных многоугольников;
-
сфер и других аналитических поверхностей;
-
полигональных тел и mesh-объектов;
-
кривых с поверхностями и телами;
-
двух кривых произвольного поддерживаемого типа.
Для классических геометрических комбинаций используются специализированные точные алгоритмы. Например, отдельно обрабатываются пересечения прямых, плоскостей и сфер.
Для общего случая работает численное ядро. Оно приводит выбранные объекты к унифицированному представлению, ищет кандидатов в пределах текущего диапазона координат, уточняет корни и удаляет дубликаты.
Результат пересечения добавляется на сцену как зависимая точка. Если изменить формулу, положение тела или значение параметра, точка будет рассчитана заново.
Для численных пересечений предусмотрены три режима качества:
-
быстро — для интерактивного предварительного просмотра;
-
обычно — основной режим работы;
-
точно — для касаний, маленьких компонентов и сложных тел.
Во время тяжёлого вычисления появляется индикатор прогресса с названием операции, процентом выполнения и затраченным временем. Это особенно важно для браузерного приложения: пользователь видит, что процесс продолжается, а не принимает расчёт за зависание интерфейса.
Карточка найденной точки показывает применённый метод, время вычисления, величину невязки и информацию о достижении вычислительного лимита. Из неё же можно принудительно пересчитать результат или запустить встроенный self-test численного ядра.
Тела, развёртки и сечения
Для конуса, цилиндра, параллелепипеда, призмы и пирамиды можно построить не только трёхмерную модель, но и плоскую развёртку в равном масштабе.
Приложение автоматически создаёт сектор боковой поверхности конуса, прямоугольник для цилиндра, крестообразную развёртку параллелепипеда и набор граней для призмы или пирамиды.
Есть и анимированная развёртка. Ползунок постепенно раскрывает грани тела в плоскость или, наоборот, складывает их обратно. Это позволяет наглядно показать связь между пространственным телом и его плоской выкройкой.
Отдельный инструмент строит сечение тела плоскостью. Можно выбрать направление, перпендикулярное одной из координатных осей, и задать смещение. Контур сечения рассчитывается по граням тела и обновляется при изменении параметров.
Экспорт и сохранение результатов
Изображение холста можно целиком скопировать в буфер обмена. Также доступно копирование произвольной прямоугольной области.
Для печати предусмотрен режим разбиения большого чертежа на листы A4 в реальном масштабе. Получившиеся страницы можно распечатать и склеить в единый плакат.
Экспорт в PDF работает в двух вариантах. Векторный режим сохраняет чёткие масштабируемые линии, а растровый передаёт изображение точно в том виде, в котором оно отображается на экране, включая кириллицу и сложное оформление.
Есть отдельный чёрно-белый режим, удобный для печати учебных материалов. При его включении исходные цвета объектов не удаляются из проекта.
Анимацию параметров можно записать в видеофайл WebM. Это позволяет сразу получить демонстрационный ролик без использования программы для захвата экрана.
Сцена сохраняется в JSON-файл и позднее открывается со всеми выражениями, параметрами, объектами, зависимостями и настройками вида. Дополнительно работает автоматическое сохранение в браузере. При следующем открытии приложение восстанавливает последнюю сцену.
Для большинства действий доступны отмена и возврат изменений как через кнопки, так и через стандартные сочетания клавиш.
Интерфейс и встроенная справка
Несмотря на количество функций, для каждого инструмента предусмотрена контекстная справка.
Если зажать Q или русскую Й и навести курсор на элемент интерфейса, появляется описание его назначения. Элемент подсвечивается, но его обычное действие не выполняется. Полное руководство открывается клавишей F1, знаком вопроса или отдельной кнопкой. В руководстве есть поиск.
В приложении также предусмотрена форма отправки сообщения об ошибке. Пользователь может указать категорию проблемы, описать действия для воспроизведения и при необходимости приложить снимок математического холста.
Что в итоге
P.S.Euclid объединяет сразу несколько классов программ:
-
построитель графиков;
-
редактор динамической геометрии;
-
средство визуализации данных;
-
трёхмерный геометрический редактор;
-
численный инструмент поиска пересечений;
-
конструктор интерактивных учебных моделей;
-
средство подготовки иллюстраций, раздаточных материалов и анимаций.
При этом формулы и геометрия не существуют в отдельных мирах. График можно использовать вместе с геометрическими объектами, двумерное построение — перенести в пространство, поверхность — пересечь с созданным вручную телом, а результат связать со слайдером и записать в виде анимации.
Ваше величество вайбкодерство😏. Юмор, это я не про себя)
