Главная страница
    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.47 MB
Время: 0.009 c
3-100635
paxer
2003-07-10 14:44
2003.07.31
А что, в Yaffil убран тип Date?


14-100922
RomanS
2003-07-14 04:09
2003.07.31
Несколько серьезных вопросов по программированию 3D графики


4-101039
BorisUK
2003-05-29 11:00
2003.07.31
Задача сводится к запуску приложения, которое запустит другое при


3-100602
Spawn
2003-07-09 13:03
2003.07.31
Редактирование данных


3-100574
stud
2003-07-08 14:28
2003.07.31
про lookup в гриде...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский