Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

Работа с SetWorldTransform   Найти похожие ветки 

 
Jimmy   (2007-01-22 09:49) [0]

1. Почему-то SetWorldTransform не работает с растровой канвой. Это нормально? Если да, то нет ли аналога этой команды для Bitmap.Canvas?
2. После того, как я нарисовал повернутый эллипс с помощью SetWorldTransform, как мне вернуть канву в нормальное состояние, отменить действие SetWorldTransform?
3. Где можно найти описание этой и похожих команд, там вроде есть еще какие-то ModifyWorldTransform, SetWorldTransform и т.д.
Заранее спасибо!


 
MBo ©   (2007-01-22 10:00) [1]

1  Что такое растровая канва???

2. Установить единичную матрицу преобразования SetWorldTransform или
ModifyWorldTransform с MWT_IDENTITY

3. в хелпе WinSDK и в MSDN


 
Jimmy   (2007-01-22 10:17) [2]

С пунктом 2 все получилось. Спасибо! Пункт 1: как нарисовать повернутый эллипс на bitmap.canvas?


 
MBo ©   (2007-01-22 13:24) [3]

>Пункт 1: как нарисовать повернутый эллипс на bitmap.canvas?
Точно так же, как и на других Canvas


 
Jimmy   (2007-01-22 18:41) [4]

На MetaFileCanvas эллипс поворачивается с помощью SetWorldTransform, на Bitmap.Canvas - нет. А должно?


 
@!!ex ©   (2007-01-22 22:59) [5]

Нет. Не должно.
Напиши свою реализацию SetWorldTransform.
Это вообще не стандартная функция, насколько мне известно.
Тока учти, что в векторной графике повернуть изображение - плюнуть и растереть.
Повернуть же кэнвас - довольно сложная и медленная операция, хотя тоже реализуемая.


 
MBo ©   (2007-01-23 07:11) [6]

>А должно?
конечно


procedure TForm18.Button1Click(Sender: TObject);
var
 b: TBitmap;
 xf: TXForm;
begin
 xf.eM11 := 0.7;
 xf.eM12 := -0.7;
 xf.eM21 := 0.7;
 xf.eM22 := 0.7;
 xf.eDx := -50;
 xf.eDy := 100;
 b := TBitmap.Create;
 b.Width := 200;
 b.Height := 200;
 SetGraphicsMode(b.Canvas.Handle, GM_ADVANCED);
 SetWorldTransform(b.Canvas.Handle, xf);
 b.Canvas.Ellipse(30, 60, 170, 140);
 ModifyWorldTransform(b.Canvas.Handle, xf, MWT_IDENTITY);
 Canvas.Draw(0, 0, b);
 b.Free;
end;


 
Jimmy   (2007-01-25 18:48) [7]

И вновь большое спасибо! Все получилось, у меня не хватало команды SetGraphicsMode.
Только вот еще одна проблемка: если picture с повернутым эллипсом сохранить в wmf-файле, то после открытия в CorelDraw эллипс превращается в "объект, состоящий из черточек, напоминающий эллипс". Можно ли этого избежать? Хотелось бы чтоб всеже Corel смотрел на эллипс именно как на эллипс.


 
MBo ©   (2007-01-25 19:22) [8]

В emf сохраняй, а про корел ничего не скажу...



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

Форум: "Media";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.054 c
15-1192430055
Layner
2007-10-15 10:34
2007.11.18
Можно ли в Delphi 2007 писать приложения для PDA WM5?


15-1192064592
Маск
2007-10-11 05:03
2007.11.18
Какой лучше использовать компонент, для отображения данных в


6-1173849435
paradox01
2007-03-14 08:17
2007.11.18
Сервер-клиент прием-передача


15-1192444794
oldman
2007-10-15 14:39
2007.11.18
Где у Висты настрайвается экран (разрешение, гамма и т.д.)?


15-1192705076
Evanescence
2007-10-18 14:57
2007.11.18
Тоже про диал-ап :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский