![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Уже месяца 3 ищу в инете процедуру поворота изображения. Скачал это:
Код:
procedure povorot(bmp1: tbitmap; var bmp2: tbitmap; a: real); var x1,y1: integer; // íîâàÿ òî÷êà x2,y2: integer; r: single; // ðàñòîÿíèå îò xo,yo è òî÷êîé êîòîðóþ íóæíî ïîâåðíóòü xo, yo: integer; // îòíîñèòåëüíî êàêîé òî÷êè íóæíî ïîâîðà÷èâàòü s, c: extended; // sin cos begin xo:=bmp1.Width div 2; yo:=bmp1.Height div 2; // öåíòð êàðòèêè for y2 := 0 to bmp1.Height - 1 do for x2 := 0 to bmp1.Width - 1 do begin r := sqrt(sqr(x2 - xo) + sqr(y2 - yo)); // ðàñòîÿíèå îò ïîâîðà÷èâàåìîé òî÷êè äî òîé òî÷êè îòíîñèòåëüíî êîòîðîé íóæíî ïîâîðà÷èâàòü SinCos(a + arctan2((y2 - yo), (x2 - xo)), s, c); x1:=round(xo + r * c); y1:=round(yo + r * s); if (x1>=0)and(x1<bmp1.Width)and(y1>=0)and(y1<bmp1.Height) then // åñëè òî÷êà ïîñëå ïîâîðîòà íàõîäèòñÿ íà êàðòèíêå òî ðèñóåì åå begin if bmp1.Canvas.Pixels[x1,y1]<>clwhite then bmp2.Canvas.Pixels[x2,y2]:=bmp1.Canvas.Pixels[x1,y1]; end else // èíà÷å âìåñòî íåå öâåò êîòîðûé áóäåò ïðîçðà÷íûé(â äàííîì ñëó÷àå áåëûé) bmp2.Canvas.Pixels[x2,y2]:=clwhite; end; end; После копирования с пояснениями что то случилось... ![]() Вообщем функцию скачал... А че с ней делать незнаю!!! Пожалуйста объясните! Или кинте другую... И что такое DLL и что с ним (как?) делать киньте ссылку на статейку... плз. Я ни в чем никогда не уверен... И в этом тоже... ![]() |