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

Вниз

Работа с 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.023 c
2-1193244294
Чайник
2007-10-24 20:44
2007.11.18
Drag & Drop из сторонних приложений - RegisterDragDrop


15-1192701498
zdm
2007-10-18 13:58
2007.11.18
перехват нажатия


2-1193500482
sdaf
2007-10-27 19:54
2007.11.18
опять формы


15-1192261056
Kostafey
2007-10-13 11:37
2007.11.18
Культурная установка BDE на пользовательском PC


15-1192166354
oxffff
2007-10-12 09:19
2007.11.18
Чудеса компилятора Delphi. Баг?