Подключите нашего Telegram-бота для уведомлений о новых проектах

Заказ закрыт
Разработка простого графического редактора

Разместить заказ
t
Заказчик
Отзывы фрилансеров: + 0 - 0
Зарегистрирован на сайте меньше месяца
Бюджет: по договоренности
Нужен простенький графический редактор в учебных целях. Ниже подробное описание того, что необходимо реализовать. Прошу писать понятный код, по минимуму использовать ГенИИ. Лучше сделать проще, никаких заморочек не придумывать.
1
Написать программу (язык любой), предоставляющую пользователю возможности:
- рисовать прямую линию на рабочем поле (любое количество линий) – режим «Создать»,
- редактировать размер и положение любой из ранее созданных прямых линий – режим «Редактировать»,
- удалять любую из ранее созданных прямых линий – режим «Удалить».
Редактирование изображения линии осуществлять режимом «резиновая нить».
При указании пользователя на выбранную им прямую или точку – объект подсвечивать (режим «Фокус»).
Предусмотреть статусную строку.
При указании пользователя указателем мыши на линию отражать ее уравнение в виде Ax+By+C=0 с конкретными значениями коэффициентов в статусной строке. При указании пользователя на точку в статусной строке отражать ее конкретные координаты вида (x,y).
На рабочем поле предусмотреть вывод (по кнопке) двухмерной системы координат для ориентации пользователя в пространстве.
Вид интерфейса пользователя – любой, креатив приветствуется.
Варианты: выпадывающее меню, поле с кнопками команд, строка на экране с кнопками–пунктами меню и любые другие.
Рекомендуются к реализации технологии: WISYWIG и Drag&Drop.
Продумать реализацию захвата нескольких прямых линий в группу. Группа – набор графических объектов, двигающихся как единой целое при применении к ним графической операции.
Среда реализации – любая.
2
Продолжаем работать над программой «Графический редактор», совершенствуя и развивая ее.
Путем указания прямых на экране (режим «Группирование») пользователь может создать группу из ранее созданных им объектов.
Дать возможность созданную группу сохранять, редактировать и удалять. Группа должна до момента ее ликвидации (режим «Разгруппировать») позволять двигать ее экране как единое целое путем захвата мышкой какой-либо ее части, применять к ней базовые операции (сдвиг, вращение, зеркалирование, масштабирование, проецирование).
3
Вводим в программу графического редактора поддержку операций двухмерной графики (смещение, масштабирование, вращение, зеркалирование и проецирование).
Интерфейс – индивидуальный (диалог с пользователем, матрица, кнопки, выпадывающее меню, пункты меню, preview и так далее).
Операции проводятся над объектами, попавшими в фокус, группой.
Обеспечить корректное выполнении цепочки операций (свойство «транзитивность»).
Предусмотреть удобный выбор пользователем параметров операции (центр вращения, угол, положение зеркала и т.п.) – меню, ползунки, аналог, цифра.
Ввести кнопку переключения: глобальная система координат, локальная система координат (ГСК, ЛСК). Операции осуществлять в выбранной пользователем системе координат.
4
Введите механизм морфинга в редактор. Морфинг осуществлять между двумя группами графических объектов (фигурами). Группы графических объектов выбирать путем указания на них фокуса пользователем. Параметр морфинга изменять плавно по указанию пользователя.
По желанию. Предусмотреть неравное количество точек в каждой (исходной и конечной) из групп. Предусмотреть смешение нескольких групп в результат морфинга с указанными пользователем коэффициентами пропорции. Результат морфинга по желанию пользователя сохранять в качестве нового объекта на сцене.
5
Так как точки уже имеют трехмерные координаты, то сцена может быть преобразована матрицей трехмерного преобразования. Обеспечьте редактором комплексные преобразования трехмерной сцены, используя 5 базовых операций в записи для 3D. Операция проецирования – триметрическая матрица при различных значениях ее трех параметров.
Реализуем 3D-операции в своем графическом редакторе в своем дизайне (ползунок preview, комплексная матрица, кнопки и т.д. и т.п.). Креативные решения приветствуются.
6
Внедрите сплайн-сглаживание пространственной линии в программу (данное понятие разобрано ранее в разделе 8).
Используя В-III-сплайн, пользователь по желанию может скруглять отдельные элементы сцены. Для этого пользователю надо указать в режиме фокуса нужные ему объекты и порядок сплайна. Чем выше порядок сплайна (например, B-IV, B-V и т.д.), тем более плавными являются его обводы. Плавность ассоциируется с наличием у сплайна производной, соответствующего порядка. Если пользователь установил две соседние точки полигона в одну точку пространства, то сплайн становится менее гладким. Таким образом пользователь-дизайнер может управлять гладкостью.
Главное достоинство В-III-сплайна состоит в том, что он локален – изменение координат точек полигона в отдельном его фрагменте влечет локальные изменения гладкой линии сплайна в ограниченном месте этой линии.
Разделы:
Опубликован:
03.05.2025 | 20:05
Заказ находится в архиве
Откликнуться Посмотреть другие заказы

Теги: нужен программист, ищу программиста, резюме программиста, требуется разработка интерактивных приложений

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».