Требуется разработать десктопное приложение, представляющее собой интерактивный 2D-планшет (рабочее поле), на котором отображаются:
• собственный объект (условно «центр»);
• другие движущиеся объекты (цели);
• пользовательские сектора (зоны) с заданными параметрами.
Планшет работает в декартовой системе координат (X/Y) и не использует морские карты.
Масштаб, ориентация и данные задаются программно или через интерфейс.
1. Рабочее поле (маневренный планшет)
1.1 Отображение
• 2D-плоскость с координатной сеткой:
• ось X — вправо;
• ось Y — вверх;
• центр планшета — собственный объект (по умолчанию).
• масштаб (например: 1 ед. = 10 кбт , 100 кбт, 1000 кбт — на выбор).
• возможность:
• масштабирования (zoom);
• смещения рабочей области (pan).
1.2 Единицы измерения
• расстояния — в кабельтовых (морских милях);
• углы — в градусах (0–360, по часовой стрелке от направления «вверх»).
2. Собственный объект (Own Object)
2.1 Отображение
• иконка/треугольник с указанием направления движения;
• подпись (опционально).
2.2 Параметры
• положение (X, Y);
• курс (угол);
• скорость (единицы/сек).
2.3 Управление
• ручное изменение курса и скорости;
• режим автоматического движения по курсу;
• обновление положения во времени (таймер).
3. Цели (другие объекты)
3.1 Отображение
• точки или иконки на планшете;
• линия вектора движения (опционально);
• подпись (ID/имя).
3.2 Параметры цели
• ID;
• положение (X, Y);
• курс;
• скорость.
3.3 Управление
• добавление/удаление цели;
• редактирование параметров;
• автоматическое перемещение цели во времени.
4. Пользовательские сектора (зоны)
4.1 Геометрия сектора
Сектор представляет собой часть круга (клин):
• начальный угол;
• конечный угол
или
• центральный угол + угол раскрытия;
• максимальный радиус.
4.2 Параметры сектора
• радиус;
• углы (в градусах);
• цвет;
• прозрачность;
• текстовая подпись;
• видимость (вкл/выкл).
4.3 Режимы привязки
• Привязка к собственному объекту
• центр сектора совпадает с положением объекта;
• сектор поворачивается вместе с курсом объекта.
• Фиксированный сектор
• сектор имеет фиксированные координаты центра;
• не зависит от курса объекта.
5. Управление секторами
• список всех созданных секторов;
• создание нового сектора через форму;
• редактирование параметров;
• удаление сектора;
• включение/отключение отображения без перезапуска.
6. Логика обновления
• обновление сцены с фиксированным шагом времени (например, 10–30 FPS);
• пересчёт:
• положений объектов;
• ориентации привязанных секторов;
• визуального отображения.
7. Технические требования (упрощённые)
• Язык/платформа (обсуждаемо):
• Python (PyQt / PySide),
• C++ (Qt),
• C# (WPF / WinUI),
• или аналогичный стек.
• 2D-графика (Canvas / Scene / QGraphicsView и т.п.).
• Код с комментариями.
• Архитектура, допускающая расширение (добавление внешних источников данных в будущем).
8. Результат работы
• рабочее приложение;
• исходный код;
• краткая инструкция по запуску;
• демонстрационный сценарий (несколько целей и секторов).
9. Что НЕ требуется
• работа с морскими картами;
• интеграция с реальным оборудованием;
• сертификация;
• высокоточная геодезия.
Опубликован 12.01.2026 в 15:43
Заказ находится в архиве