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

Вниз

Как повернуть, к примеру TImage   Найти похожие ветки 

 
vich   (2002-11-23 21:26) [0]

Подскажите пожалуйста как повернуть TImage или другой TComponent на форме. Я думаю, что такое возможно, но КАК? Искал в книгах в интернете но ничего не нашел.Если кто знает, большая просьба, помогите (можно с куском кода).


 
TTCustomDelphiMaster ©   (2002-11-23 21:41) [1]

Компонент накак не повернуть, а изображение можно.

MBo © (25.09.02 07:01)
//только для 24-битных
//при повороте на 90*n градусов возможны погрешности
//из-за округления, в таких случаяъ надо использовать
//другие методы (они проще)


function BmpRot(const B: TBitmap;fi:integer):TBitmap;
type
TRGBTripleArray = array[word] of TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray;
var
x0,y0,i,j,x1,y1,x11,y11,x2,y2:integer;
ht,wd,newht,newwd:integer;
cfi,sfi: double;
sline1,sline2: pRGBTRipleArray;
BEGIN
sfi:=sin(degtorad(fi));
cfi:=cos(degtorad(fi));
ht:=b.height;
wd:=b.width;
newwd:=abs(round(ht*sfi))+abs(round(wd*cfi));
newht:=abs(round(wd*sfi))+abs(round(ht*cfi));
Result:=TBitmap.create;
Result.Width:=newwd;
Result.Height:=newht;
Result.PixelFormat:=pf24bit;
x0:=wd div 2;
y0:=ht div 2;
for j :=newht-1 downto 0 do begin
sline2 := Result.scanline[j];
y1:= 2*(j-(newht-ht) div 2 -y0);
for i := newwd-1 downto 0 do begin
x1:=2*(i-(newwd-wd) div 2 -x0);
x2 :=round(x1 * cfi - y1 * sfi);
y2 :=round(x1 * sfi + y1 * cfi);
x11:=x2 div 2 +x0;
y11:=y2 div 2 +y0;
if (x11>=0)and(x11<wd)and(y11>=0)and(y11<ht) then begin
sline1 := b.scanline[y11];
sline2[i] := sline1[x11];
end;
end;
end;
end;




 
vich   (2002-11-23 22:50) [2]

Спасибо, пробую разобраться!



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
1-14634
Lucifer2002
2002-11-18 12:19
2002.12.05
Архивация


1-14606
Begin
2002-11-24 19:05
2002.12.05
Про изображения.


3-14409
Sergey_
2002-11-15 10:11
2002.12.05
RaveReport


1-14621
For
2002-11-25 04:58
2002.12.05
Вопрос про глобальную переменную?


14-14770
Filat
2002-11-13 18:09
2002.12.05
Как обойти??!! Не ставится Delphi 5 на Windows 2000 Adv. Server!