Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 2 / 0
Регистрация: 30.06.2019
Сообщений: 30

Идентификация объектов векторной графики

13.12.2021, 09:35. Показов 499. Ответов 0

Студворк — интернет-сервис помощи студентам


Во всех редакторах векторной графики важным моментом является обособление, или выделение тех элементов, с которыми мы будем работать.

В программе CоrelDraw, например, для этого используется инструмент «Указатель» – выбор объекта перед его изменением. Выделение нескольких объектов сразу можно сделать, нажав клавишу Shift.
Выделить группу объектов можно, обведя их в рамку, – выделяются объекты полностью попавшие в рамку (при нажатой клавише Alt выделяются объекты, даже частично попавшие в рамку).
Затем в CоrelDraw можно взять другой инструмент и работать им на выделенных объектах. Двигая, например, их узловые точки.
Идентификация узловых точек происходит по их положению, то есть, по их векторным координатам. Если узловых точек очень много, то эта процедура затягивается, потому и понадобилось предварительное выделение объектов для работы с ними.

Итак, идентификация объектов понадобилась для упрощения и ускорения работы с ними. Одновременно отметим, что идентификация объекта по всей массе его узловых точек, далеко не самый удачный способ работы с ним. Тем не менее, для своих задач, в русле создания статичных изображений, CоrelDraw работает вполне успешно.

ИДЕНТИФИКАЦИЯ ПО НАЧАЛЬНЫМ ТОЧКАМ

Программа DM_Paint сделана в среде VB6.
Её векторная графика DM_Paint нацелена на создание анимации. Динамические перемещения векторных фигур вместе и порознь требуют не столь тяжеловесных и архаичных методов идентификации фигур, которые приняты в CоrelDraw.
В программе DM_Paint фигуры идентифицируются не по массе узловых точек, а по координатам начальной точки, которая есть у каждой фигуры.
Указав на начальную точку, и тем самым, выбрав фигуру, можно передвигать и поворачивать фигуру, а войдя в её контур, передвигать его узловые точки, меняя очертания контура.
Такая идеология требует для своей реализации не полного списка узловых точек, а только списка начальных точек. В этом списке на первой и второй позициях указываются X,Y координаты узловой точки, а в нулевой позиции – номер строки векторной графики, описывающей конкретную фигуру. И эта идеология оказалась весьма продуктивной - http://youtu.be/lWpFxt3VWe8

ЦВЕТОВАЯ ИДЕНТИФИКАЦИЯ ВЕКТОРНЫХ ОБЪЕКТОВ

В программе «Стереометрия для математиков» идентификация трёхмерных векторных фигур упрощена ещё более – координатный список в ней вообще отсутствует.
Фигуры идентифицируются не по их координатам, а по цвету - http://youtu.be/0MrUrB5BUVY
Уникальный номер векторной фигуры определяется сразу - в момент клика по ней. Номер этот задаётся тремя младшими битами трёх компонент цвета.
Если младшие биты равны нулю во всех трёх BGR компонентах, то такая точка считается пустой, независимо от её видимого цвета, и мы относим эту область чертежа к области фона, то есть, считаем её не занятой изображением векторной фигуры.
И наоборот – получив уникальный номер векторной фигуры ( номер этот может иметь значение J от 1 до 511 ), мы обращаемся к списку ссылок
N = Mvv( J ), по которому сразу же определяем номер строки конкретной фигуры.

Поскольку видимый цвет фигуры определяется старшими байтами цвета, то использование младших бит цвета для цифровой идентификации является вполне разумной идеей.

=======

Итак, мы рассмотрели различные способы идентификации фигур векторной графики. Указали на их преимущества и недостатки. А также на то, что способы эти могут быть весьма различными.
Обсуждение указанной проблемы мне представляется важным для проектирования векторных редакторов различного назначения.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2021, 09:35
Ответы с готовыми решениями:

Редактор векторной графики
Не могу справиться с задачей.Условие:задача должна быть решена с помощью API функций.Редактор должен позволять изменять цвет фигур,толщину...

редактор векторной графики VBA - Visual Basic
требования: -задача проекта должна быть решена с использованием API-функций Windows в среде Visual Basic; -редактор должен позволять...

Программирование векторной графики в VBA(Word)
Здравствуйте!!! Помогите пожалуйста в решении следующей задачи: Надо написать программу, которая будет выводить Вывески кабинетов, Цеников,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2021, 09:35
Помогаю со студенческими работами здесь

Хранение векторной графики
Привет всем. Хочу узнать о том, каким образом можно сохранить нарисованные фигуры в самодельном граф. редакторе ПРАВИЛЬНО в векторном...

Редактор векторной графики
Помогите разобраться. Задание поставлено так: "Определить спецификации классов и реализацию методов для подачи графического элемента в...

Редактор векторной графики
Задумал написать простенький редактор блок-схем (нет, это не задание на курсовой).Столкнулся с рядом проблем, которые в принципе решаемы,...

редактор векторной графики
доброе время суток. у меня есть задание - сделать редактор векторной графики на Flex'е. я написал карандаш, кисть, линия,...

Масштабирование векторной графики
Нужно вывести геометрические объекты (заданы массивом координат точек) и сделать перемещение и масштабирование рисунка. На данный момент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru