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

Вниз

BitMap с поворотом   Найти похожие ветки 

 
Леприкон ©   (2003-05-16 16:07) [0]

Подскажите пожалуйста, как можно разместить BitMap на канвасе формы под углом?

Спасибо.


 
MBo ©   (2003-05-16 16:09) [1]

SetWorldTransform для NT-семейства


 
Юрий Федоров ©   (2003-05-16 16:16) [2]

А для не NT - Torry.net


 
MBo ©   (2003-05-16 16:47) [3]

В чате уточнилось - NT

SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
ModifyWorldTranform - MWT_IDENTITY
ModifyWorldTranform - сдвиг на -X, -Y центра поворота MWT_RIGHTMULTIPLY
ModifyWorldTranform - поворот MWT_RIGHTMULTIPLY
ModifyWorldTranform - сдвиг на +X, +Y центра поворота MWT_RIGHTMULTIPLY
BitBlt

Другой путь - PlgBlt (сначала посчитать координаты трех углов повернутой картинки)





 
Леприкон ©   (2003-05-16 16:55) [4]

Спасибо.


 
Леприкон ©   (2003-05-19 09:03) [5]

А как BitMap повернуть на 30 градусов не искажая изображения?
Пытаюсь делать так.

procedure BitMapRotate;
var bm:TBitMap;
xf:XFORM;
begin
bm:=TBitMap.Create;
bm.LoadFromFile("e:\logo\l2.bmp");

xf.eM11:=0.866; xf.eM12:=1;
xf.eM21:=1; xf.eM22:=0.5;

SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
ModifyWorldTransform(Canvas.Handle,xf,MWT_RIGHTMULTIPLY);
BitBlt(Canvas.Handle,0,0,bm.Width,bm.Height,bm.Canvas.Handle,0,0,MERGECOPY);

bm.Free;
end;

Но область BitMap просто наклоняется...


 
Axis_of_Evil ©   (2003-05-19 13:01) [6]

>ModifyWorldTransform(Canvas.Handle,xf,MWT_RIGHTMULTIPLY);
SetWorldTransform?

>xf.eM11:=0.866; xf.eM12:=1;
>xf.eM21:=1; xf.eM22:=0.5;
Уверен?



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
1-13296
DDDeN
2003-05-23 09:38
2003.06.05
Ввод в TEdit только цифры


1-13187
Barlok
2003-05-26 19:14
2003.06.05
Вопрос по массивам ?


14-13438
Filling
2003-05-19 15:10
2003.06.05
Как переделать программуку с C++ на Delphi?


3-13004
zubbo
2003-05-19 12:18
2003.06.05
Небоьшой вопрос.


8-13337
Sergeys
2003-02-20 19:42
2003.06.05
Как обновить (перезапустить Image в RunTime)