Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
1

На Canvas нарисовать не связанные области как один объект

18.09.2018, 15:21. Просмотров 132. Ответов 12
Метки нет (Все метки)

Есть ли возможность нарисовать на Canvas различные несвязанные области, чтобы при экспорте в WMF-файл, они интерпретировались как один объект?
Пример на рисунке: треугольник рисуется через Polyline или Polygon, точка рисуется через Ellipse. Но в WMF-файл они попадают как 2 объекта, мне нужно 1.
0
Миниатюры
На Canvas нарисовать не связанные области как один объект  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2018, 15:21
Ответы с готовыми решениями:

Как нарисовать на Canvas четырехугольник по заданным точкам?
если у мне имеется 4 точки как рисовать четирыехуголник

Как узнать ширину и высоту строки в пикселях не используя объект Canvas
Здравствуйте, скажите пожалуйста есть ли способ узнать ширину и высоту строки в пикселях, не...

Canvas. Нарисовать Слона .
нада нарисовать слона =) да такое задание . . .

Нарисовать узор на Canvas
Доброго времени всем, нужна помощь в рисовании в Canvas. Нужно нарисовать узор, вложенный ниже. Я...

Как отрисовывать один объект несколько раз! HTML 5 CANVAS
Такая история! Есть плавно увеличивающийся круг на полотне canvas! (круг появляется в рандомном...

12
Puporev
Модератор
55478 / 42579 / 29428
Регистрация: 18.05.2008
Сообщений: 100,728
18.09.2018, 16:30 2
Просто рисуете как обычно на Image1.Canvas и сохраняете
Delphi
1
Image1.Picture.LoadFromFile('ris.wmf);
0
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
18.09.2018, 16:58  [ТС] 3
Нет, на рисунке таких (и других) объектов много. При сохранении всего Canvas они разделяются (в данном случае, на треугольник и точку) и оператору работать с ними становится неудобно. Их приходится группировать, а их много.
Вот как бы такой объект нарисовать одним обращением к Canvas.

Добавлено через 3 минуты
Наверное, не ясно. Я рисую на Canvas и сохраняю в wmf-файл. А с wmf уже работает оператор с помощью редактора векторной графики.
0
D1973
Модератор
3663 / 2641 / 1286
Регистрация: 21.01.2014
Сообщений: 11,196
Записей в блоге: 3
Завершенные тесты: 1
18.09.2018, 17:33 4
Цитата Сообщение от Newby52 Посмотреть сообщение
Наверное, не ясно.
Наверное... Вам же сказали: рисуйте, что хотите, а потом сохраняйте весь Canvas в картинку...
0
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
18.09.2018, 17:40  [ТС] 5
Хорошо, поясню ещё. Рисую, что хочу и сохраняю в wmf-файл. Оператор вызывает редактор векторной графики и работает с этим рисунком. Вот надписи, линии, он может перемещать, поворачивать и т.д.
А треугольники с точкой - нет, потому что они состоят из двух элементов - треугольника и точки. И для того, чтобы с ними работать, он их должен предварительно сгруппировать. А поскольку таких элементов очень много, то это ему неудобно.
Внимание, вопрос: как можно вывести такие элементы через одно обращение к Canvas?
0
Миниатюры
На Canvas нарисовать не связанные области как один объект  
krapotkin
3484 / 3077 / 1062
Регистрация: 14.04.2014
Сообщений: 14,873
Записей в блоге: 15
18.09.2018, 21:56 6
может это?
https://docs.microsoft.com/en-us/windows/desktop/gdi/region-functions

Добавлено через 2 минуты
но реально проблема скорее именно в выбранной вами технологии, может статься, это и вообще невозможно
1
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
18.09.2018, 22:05  [ТС] 7
Собственно, а какая тут другая технология? Разве что непосредственная работа с WMF, но это очень геморройно.
0
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
18.09.2018, 22:12  [ТС] 8
Ну, как временное решение, как-то так.
0
Миниатюры
На Canvas нарисовать не связанные области как один объект   На Canvas нарисовать не связанные области как один объект   На Canvas нарисовать не связанные области как один объект  

Изображения
 
Бард
141 / 92 / 56
Регистрация: 12.07.2018
Сообщений: 225
18.09.2018, 22:25 9
При выводе любого графического примитива (polyline, ellipse и т.д.) происходит его растеризация. При сохранении изображения с Canvas в wmf, экспортёр работает уже с пикселями. Каждая несвязанная область всегда будет отдельным объектом, независимо от того, как его нарисовали. Получается, что треугольник и круг сохранить с Canvas в wmf одним объектом нельзя.
0
krapotkin
3484 / 3077 / 1062
Регистрация: 14.04.2014
Сообщений: 14,873
Записей в блоге: 15
18.09.2018, 22:45 10
эмм, тут не совсем об этом речь
wmf это как раз и есть последовательность команд, отдаваемых канвасу
запоминается именно она
поэтому растеризация не происходит.
если wmf поддерживает регионы, то они может и будут одним целым
есть кстати еще EMF. Он вроде старший брат WMF

но в целом склоняюсь к тому, что группировки в командах Canvas нет

а альтернативной технологией может являться SVG
0
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
19.09.2018, 00:54  [ТС] 11
Посмотрел по ссылке, там есть функция, которая меня бы устроила: Polypolyline - она рисует несколько несвязных полилиний, этого было бы достаточно для моей задачи. К сожалению, редактор их не воспринимает, хотя на экране всё рисуется правильно. Но всё равно, спасибо.
0
Миниатюры
На Canvas нарисовать не связанные области как один объект  
krapotkin
3484 / 3077 / 1062
Регистрация: 14.04.2014
Сообщений: 14,873
Записей в блоге: 15
19.09.2018, 09:10 12
а над SVG можно и подумать
0
Newby52
0 / 0 / 0
Регистрация: 24.07.2018
Сообщений: 14
19.09.2018, 12:09  [ТС] 13
К сожалению, тоже не получится. Проверил - редактор его не обрабатывает. По крайней мере, та версия, которая сейчас стоит в корпорации.
0
19.09.2018, 12:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2018, 12:09

Не получается отрисовывать один объект несколько раз! HTML 5 CANVAS
Здравствуйте! Я хочу, чтобы при клике на canvas добавлялся один объект в виде эллипса с...

Как нарисовать Bitmap на Canvas'е
Здравствуйте, возникла проблема не могу поменять обычный фон WHITE на этот...

Как нарисовать определенную фигуру (Canvas) ?
Подскажите как нарисовать вот такую фигуру только без круга. Арками или может как-то полигоном?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru