Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вращение рисунка [D7, Win95/98]


Dextor ©   (2004-06-02 15:20:00) 

Как вращать рисунок (BMP или JPEG) ???


Diver   (2004-06-02 22:17:00) [1]

uses Math;

procedure TForm1.Button1Click(Sender: TObject);
var
 bm, bm1: TBitMap;
 x, y: integer;
 r, a: single;
 xo, yo: integer;
 s, c: extended;
begin
 bm := TBitMap.Create;
 bm.LoadFromFile('ex.bmp');
 xo := bm.Width div 2;
 yo := bm.Height div 2;
 bm1 := TBitMap.Create;
 bm1.Width := bm.Width;
 bm1.Height := bm.Height;
 a := 0;
 repeat
   for y := 0 to bm.Height - 1 do begin
     for x := 0 to bm.Width - 1 do begin
       r := sqrt(sqr(x - xo) + sqr(y - yo));
       SinCos(a + arctan2((y - yo), (x - xo)), s, c);
       bm1.Canvas.Pixels[x,y] := bm.Canvas.Pixels[
         round(xo + r * c), round(yo + r * s)];
     end;
     Application.ProcessMessages;
   end;
   Form1.Canvas.Draw(xo, yo, bm1);
   a := a + 0.05;
   Application.ProcessMessages;
 until Form1.Tag <> 0;
 bm.Destroy;
 bm1.Destroy;
end;


Jeer   (2004-06-02 21:06:00) [2]

Ключевое слово - матрица вращений.


Наверх

Титульная страница Поиск, карта сайта Написать письмо