Форум: "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.45 MB
Время: 5.876 c