Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
3-1183627926
Jakudza
2007-07-05 13:32
2007.11.18
Произведение по столбцу в FireBird


15-1192094854
Prohodil Mimo
2007-10-11 13:27
2007.11.18
Как зайти в меню DSL-модема?


2-1193406106
Pacific
2007-10-26 17:41
2007.11.18
Ошибка в коде


15-1192695499
Ученик
2007-10-18 12:18
2007.11.18
У кого-нибудь есть книги по FreeBSD/Linux/Windows Server


2-1193643376
Sergl
2007-10-29 10:36
2007.11.18
Нужно узнать IP адрес и сетевое имя клиента socketserver`а




   Наверх