Главная страница
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.02 c
3-100607
sergt
2003-07-09 16:31
2003.07.31
wm_user


4-101026
dimonf
2003-05-28 11:02
2003.07.31
Подскажите какая функция в API отвечает за вывод PopupMenu???


3-100613
Falendysh
2003-07-09 18:03
2003.07.31
печать содержимого в DBGrid


1-100798
Sectey
2003-07-14 10:18
2003.07.31
Классы и интерфейсы


8-100829
Ильдар
2003-04-05 13:04
2003.07.31
Слушаем радио