Скачиваний:
0
Добавлен:
27.12.2025
Размер:
216.59 Кб
Скачать

3.3. Абстракция Системы Координат

Для соответствия математическим требованиям (ось Y направлена вверх, начало координат в центре) реализован класс-прослойка CoordinateSystem.ts.

  • Принцип работы: Приложение хранит данные исключительно в Мировых координатах.

  • Прямое преобразование (To Screen): Перед отрисовкой любая координата проходит через функцию toScreen: (Инверсия оси Y).

  • Обратное преобразование (To World): При клике мышью координаты события преобразуются через toWorld:

Это позволяет математическому ядру (Geometry.ts) работать с чистой декартовой логикой, не заботясь об особенностях экранного рендеринга.

4. Организация данных

Формат файла

Данные хранятся в текстовом файле (расширение .txt) с простой структурой тегов.

Пример:

POLYGON

0 0

0 100

100 100

100 0

50 50

END

LINE

-50 25

150 25

Парсер (FileParser.ts) считывает файл построчно, формируя объекты в памяти. Последняя точка полигона не должна замыкаться на первой. Обработка этого момента происходит автоматически и не требует от пользователя неочевидного действия – помнить каждый раз замыкать фигуру.

Хранение данных в Runtime (Во время работы)

  • Основное состояние хранится в реактивном объекте sceneData.

  • Исходные данные: Хранятся как объекты Polygon с полным набором вершин. Они модифицируются только при операциях Move/Rotate.

  • Результаты отсечения: Не хранятся перманентно. Они вычисляются динамически ("на лету") при каждом изменении сцены внутри цикла отрисовки. Это позволяет пользователю двигать секущую прямую и видеть результат в реальном времени (Real-time Feedback).

5. Руководство пользователя

В данном разделе описывается последовательность действий оператора для решения геометрических задач в разработанном приложении.

  1. Запуск: Откройте приложение в браузере. Общий вид приложения с пустой сеткой и панелью меню показан на рисунке 1

Рисунок 1 – общий вид приложения с пустой сеткой и панелью меню

  1. Создание геометрии:

    • Инструмент Полигон: Кликайте ЛКМ для создания вершин. Кликните в первую точку для замыкания контура. На рисунке 2 показан процесс построение полигона.

Рисунок 2 – процесс построения полигона

  • Инструмент Линия: чтобы задать первую точку нажмите ЛКМ для старта, отпустите, потяните для задания места для второй точки, нажмите ЛКМ, отпустите для создания секущей прямой. На рисунке 3 показан процесс построения линии

Рисунок 3 – процесс построения линии

  1. Редактирование:

    • Инструмент Move: Перетаскивание фигур мышью. Поддерживается выделение нескольких фигур (Ctrl + Клик). Процесс переноса полигона и линии показан на рисунке 4.

Рисунок 4 – процесс переноса полигона и линии

  • Инструмент Rotate: Вращение выделенных фигур вокруг их общего центра масс. Процесс поворота полигона и линии показан на рисунке 5.

Рисунок 5 – процесс поворота полигона и линии

  1. Отсечение: Происходит автоматически при наличии полигонов и линии.

    • Зеленая область: Часть фигуры в положительной полуплоскости.

    • Красная область: Часть фигуры в отрицательной полуплоскости.

Результат отсечения виден сразу после построения хотя бы одного полигона и одной линии. Получившаяся структура после отсечения показана на рисунке 6.

Рисунок 6 – получившаяся структура после отсечения

  1. Сохранение: Кнопка сохранения сохраняет текущее состояние (координаты вершин) в файл. Процесс сохранения показан на рисунке 7, где обведена кнопка сохранения в файл. Файл сохраняется в раздел «Документы» пользователя компьютера.

Рисунок 7 – процесс сохранения результата в текстовый файл

  1. Открытие: Кнопка открытия открывает сохраненные ранее результаты. Процесс открытия имеющихся файлов представлен на рисунке 8.

Рисунок 8 – процесс открытия имеющихся файлов

Открытый файл, если он соответствует формату .txt и требованиям к структуре файла считывается программой и выдает готовую структуру для дальнейшей работы, которая отражена на рисунке 9.

Рисунок 9 – построенная структура из открытого файла