![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как осуществить поворот? [Delphi, Windows]
Alexey-neo © (2002-05-13 21:36:00)Всеуважаемый программерские "мастаки" подскажите мне какой нить алгоритм для поворото какого либо объекта, предположим курсора мыши (как ставить я знаю), при этом мне известная формула функции, но я не знаю как её использовать!
senquin (2002-05-27 13:08:00) [1]Поворот картинки вокруг произвольной оси. Картинка в bmp файле или где-нибудь ещё.
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("Image-01.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(0,0,bm1);
A:=A+0.005;
Application.ProcessMessages;
until Form1.Tag <> 0;
bm.Destroy;
bm1.Destroy;
end;
Desdechado (2002-05-17 19:25:00) [2]под NT SetWorldTransform
а вообще почитай учебники по линейной алгебре или машинной графике
zve (2002-05-16 14:59:00) [3]Тебе в OpenGL или просто алгоритм на паскале?
Подросток (2002-05-15 01:46:00) [4]Не слишком ли крутой вопрос для пятилетнего парня? ;-))