MathProgress
7 примеров прошли схему
Лаборатория компонентов

Математика, которую понимает интерфейс

Первая версия рендерера работает с семантическим деревом, сохраняет точные числа и отделяет математический смысл от оформления.

Структура

Каждое число, действие и отношение остаётся отдельным узлом.

Доступность

Из того же дерева собирается понятное описание для скринридера.

Контракт

Zod проверяет документ до того, как он попадёт в интерфейс.

Интерактивный ввод

От набранной формулы до нашего AST

Редактор отдаёт LaTeX, адаптер превращает его в семантическое дерево, а визуальный компонент рисует результат уже из этого дерева.

Распознано
Загружаем редактор формул…
LaTeX успешно преобразован в математическое дерево.

Предпросмотр из AST

LaTeX

\frac{1}{2}+\frac{3}{4}

Семантическое дерево

{
  "type": "operation",
  "operator": "add",
  "operands": [
    {
      "type": "operation",
      "operator": "divide",
      "operands": [
        {
          "type": "integer",
          "value": "1"
        },
        {
          "type": "integer",
          "value": "2"
        }
      ]
    },
    {
      "type": "operation",
      "operator": "divide",
      "operands": [
        {
          "type": "integer",
          "value": "3"
        },
        {
          "type": "integer",
          "value": "4"
        }
      ]
    }
  ]
}

Базовый набор

Выражения первой версии

Подсвеченный числитель показывает, что узлы уже готовы к будущему выделению и интерактивным шагам решения.

Обыкновенная дробь

Числитель и знаменатель остаются отдельными узлами.

v1

Доступное описание

дробь: числитель 1, знаменатель 2

Отрицательное число

Унарный минус отделён от операции вычитания.

v1

Доступное описание

минус дробь: числитель 3, знаменатель 4

Десятичная дробь

В данных используется точка, в русском интерфейсе — запятая.

v1

Доступное описание

2,50

Сложение дробей

Композиция собирается из тех же базовых элементов.

v1

Доступное описание

дробь: числитель 1, знаменатель 2 плюс дробь: числитель 3, знаменатель 4

Умножение и скобки

Знак умножения можно заменить без изменения выражения.

v1

Доступное описание

2 умножить на открывающая круглая скобка, 3 минус 1, закрывающая круглая скобка

Деление и равенство

Отношение связывает два самостоятельных выражения.

v1

Доступное описание

10 разделить на 2 равно 5

Вложенная дробь

Размер вложенного выражения уменьшается автоматически.

v1

Доступное описание

дробь: числитель 1 плюс дробь: числитель 1, знаменатель 2, знаменатель 3 минус дробь: числитель 1, знаменатель 4

Масштаб

Одна модель — три размера

S
M
L

Представление

Смысл не зависит от символа

Крест
Точка
Неявно