Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

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

 
AlexT1000 ©   (2003-04-08 18:01) [0]

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


 
MBo ©   (2003-04-08 18:18) [1]

конечно, можешь, только в 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);


 
AlexT1000 ©   (2003-04-08 18:31) [2]

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


 
MBo ©   (2003-04-08 18:38) [3]

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

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


 
AlexT1000 ©   (2003-04-08 18:44) [4]

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


 
MBo ©   (2003-04-09 06:08) [5]

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


 
AlexT1000 ©   (2003-04-09 14:24) [6]

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


 
MBo ©   (2003-04-09 14:26) [7]

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


 
AlexT1000 ©   (2003-04-09 14:52) [8]

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


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

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

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


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

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

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

а что?


 
MBo ©   (2003-04-09 15:08) [11]

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


 
AlexT1000 ©   (2003-04-09 15:15) [12]

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

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

а что?


 
AlexT1000 ©   (2003-04-09 15:17) [13]

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


 
AlexT1000 ©   (2003-04-09 15:34) [14]

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


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

создать Polygon и FloodFill


 
MBo ©   (2003-04-09 15:40) [16]

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


 
AlexT1000 ©   (2003-04-09 15:43) [17]

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



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-100770
MaDgic
2003-07-08 14:03
2003.07.31
ListView


1-100663
Interested
2003-07-16 02:05
2003.07.31
Как загрузить иконку из ресурса exe файла, зная её ID?


4-101023
Lefan
2003-05-27 06:27
2003.07.31
Закрыть программу


14-100971
chexum
2003-07-15 16:58
2003.07.31
Теория графов


7-101001
Zew
2003-05-19 21:06
2003.07.31
CD-ROM