Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вывод метафайла с учетом матрицы трансформирования


AlexT1000 ©   (2003-04-08 18:01:00) 

Могу ли я каким-либо образом выводить emf на DC c применением матрицы трансформирования . мне нужен поворот сдвиг искажение


AlexT1000   (2003-04-09 15:43:00) [1]

засада. вообщем работы будет тьма. ясно . спасибо


MBo   (2003-04-09 15:40:00) [2]

или ClipRegion задать - тогда и границу не надо рисовать


MBo   (2003-04-09 15:39:00) [3]

создать Polygon и FloodFill


AlexT1000   (2003-04-09 15:34:00) [4]

кстати такой вопрос . предположим мне в стретилась запись
FillRect.
я поворачиваю координаты на 45 градусов. и что я получаю!?
кривые координаты FillRect т.е зальется больший рект.
не знаешь как с этим можно бороться?


AlexT1000   (2003-04-09 15:17:00) [5]

спасибо. я уже в курсе. недавно прикупил этого самого фень юаня.
читаю в перерывах между исправлением багов в предыдущих прогах


AlexT1000   (2003-04-09 15:15:00) [6]

нет не одним. просто изображения бабочек зверушек и прочей дребедени надо будет геометрически трансформировать.

через однотонные метафайлы я, наверное, сделаю другие навороты . типа геометрические объекты с возможностью смены цвета. ( возможно градиентного) ну и геом преобразования.

а что?


MBo   (2003-04-09 15:08:00) [7]

В некоторых случаях может подойти способ - рисуешь метафайл на какой-нибудь Canvas или MemDC внутри BeginPath/EndPath, получаешь данные траектории, их можно подвергнуть аффинному преобразованию- всего-то MoveTo, LineTo и BezierTo придется обрабатывать


AlexT1000   (2003-04-09 15:00:00) [8]

нет не одним. просто изображения бабочек зверушек и прочей дребедени надо будет геометрически трансформировать.

через однотонные метафайлы я, наверное, сделаю другие навороты . типа геометрические объекты с возможностью смены цвета. ( возможно градиентного) ну и геом преобразования.

а что?


MBo   (2003-04-09 14:54:00) [9]

тогда легче, всего несколько десятков EMR_ обрабатывать ;)

Кстати, случайно графика не одним цветом и одной толщиной линий рисуется?


AlexT1000   (2003-04-09 14:52:00) [10]

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


MBo   (2003-04-09 14:26:00) [11]

А с растрами и текстом как поступишь?


AlexT1000   (2003-04-09 14:24:00) [12]

нет. бум по феньюаню. оч толстая и хорошая книга. ее бы 2 годика назад прочесть. сколько бы времени сохранилось


MBo   (2003-04-09 06:08:00) [13]

Да, можно так, но очень муторно - типов emf записей много, обрабатывать их все надо по-разному. Парсер emf есть в книге Фень Юаня.
Возможно, устроит такой путь - рисовать emf на bmp, а уже этот bmp трансформировать целиком.


AlexT1000   (2003-04-08 18:44:00) [14]

спасибо. т.е. я так понял мне прийдется раздербанивать emf на рекорды и PlayEnhMetafileRecord c преобразованием координат с учетом моей матрицы для всех функций. засада однако.


MBo   (2003-04-08 18:38:00) [15]

простыми средствами - никак.

Векторную графику преобразовать, в общем-то, нетрудно,а с растрами проблема - придется написать что-то вроде аналога PlgBlt. Но самое худшее - вывод текста.


AlexT1000   (2003-04-08 18:31:00) [16]

это я знаю. спасибо
а на 98 ?


MBo   (2003-04-08 18:18:00) [17]

конечно, можешь, только в NT-семействе

XF.eM11:=0.707;
XF.eM12:=0.707;
XF.eM21:=-0.707;
XF.eM22:=0.707;
XF.eDx:=100;
XF.eDy:=100;
emf:=TMetaFile.Create;
emf.LoadFromFile("e:\emf.emf");
SetGraphicsMode(Canvas.Handle,GM_ADVANCED);
SetWorldTransForm(Canvas.Handle,XF);
Canvas.Draw(0,0,emf);


Наверх

Титульная страница Поиск, карта сайта Написать письмо