Брезенхайм
10 отговора
877 прегледа
Re: Брезенхайм
Бах маа му!!! Ама верно ли?
Машина за отделяне на кожа и сланина от парени свине
Машина за отделяне на кожа и сланина от парени свине
Re: Брезенхайм
Трите удивителни са магия, подобна на фаталитито на Sub Zero (напред-надолу-напред-удар с ръка нагоре), която, при достатъчно високо ниво на спелкастъра, заменя гугъл търсенето.
Редактирано от Дeшeв на
Re: Брезенхайм
Описание на алгоритъма ли ти трябва? Или реализация на алгоритъма за С ?
Re: Брезенхайм
Те ти го те:
// Bresenham Algorithm----------
If tmpDeltaP.Y > tmpDeltaP.X then begin
tmpFrac := Round((tmpDeltaP.X*2) - tmpDeltaP.Y);
while (tmpNextP.Y <> tmpTargP.Y) do begin
If tmpFrac >= 0 then begin
tmpNextP.X := tmpNextP.X + tmpStepX;
tmpFrac := Trunc(tmpFrac - tmpDeltaP.Y);
end;
tmpNextP.Y := tmpNextP.Y + tmpStepY;
tmpFrac := Round(tmpFrac + tmpDeltaP.X);
SetLength(FPath, i+1);
FPath[ i ].X := tmpNextP.X;
FPath[ i ].Y := tmpNextP.Y;
inc(i);
end; { while }
end
else begin
tmpFrac := Round((tmpDeltaP.Y*2) - tmpDeltaP.X);
while (tmpNextP.X <> tmpTargP.X) do begin
If tmpFrac >= 0 then begin
tmpNextP.Y := tmpNextP.Y + tmpStepY;
tmpFrac := Round(tmpFrac - tmpDeltaP.X);
end;
tmpNextP.X := tmpNextP.X + tmpStepX;
tmpFrac := Trunc(tmpFrac + tmpDeltaP.Y);
SetLength(FPath, i+1);
FPath[ i ].X := tmpNextP.X;
FPath[ i ].Y := tmpNextP.Y;
inc(i);
end; { while }
end;
Те ти го, ма на Делфи. На C шси го преведеш сам/а.
// Bresenham Algorithm----------
If tmpDeltaP.Y > tmpDeltaP.X then begin
tmpFrac := Round((tmpDeltaP.X*2) - tmpDeltaP.Y);
while (tmpNextP.Y <> tmpTargP.Y) do begin
If tmpFrac >= 0 then begin
tmpNextP.X := tmpNextP.X + tmpStepX;
tmpFrac := Trunc(tmpFrac - tmpDeltaP.Y);
end;
tmpNextP.Y := tmpNextP.Y + tmpStepY;
tmpFrac := Round(tmpFrac + tmpDeltaP.X);
SetLength(FPath, i+1);
FPath[ i ].X := tmpNextP.X;
FPath[ i ].Y := tmpNextP.Y;
inc(i);
end; { while }
end
else begin
tmpFrac := Round((tmpDeltaP.Y*2) - tmpDeltaP.X);
while (tmpNextP.X <> tmpTargP.X) do begin
If tmpFrac >= 0 then begin
tmpNextP.Y := tmpNextP.Y + tmpStepY;
tmpFrac := Round(tmpFrac - tmpDeltaP.X);
end;
tmpNextP.X := tmpNextP.X + tmpStepX;
tmpFrac := Trunc(tmpFrac + tmpDeltaP.Y);
SetLength(FPath, i+1);
FPath[ i ].X := tmpNextP.X;
FPath[ i ].Y := tmpNextP.Y;
inc(i);
end; { while }
end;
Те ти го, ма на Делфи. На C шси го преведеш сам/а.
Редактирано от c1ick на
Re: Брезенхайм
Добре, че е яко насран алг-а, иначе беше редно да те псуваме, че си толкова любезен...
Машина за отделяне на кожа и сланина от парени свине
Машина за отделяне на кожа и сланина от парени свине