Убрать зазубринки при рисовании линий

Previous  Top  Next

    
 

 

При рисовании линии, особенно под маленьким углом, хорошо различимы отдельные точки. Для устранения этого недостатка я использую уменьшение изображения.

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

x, y: integer;

i, j: integer;

r, g, b: integer;

begin

Form1.Canvas.Pen.Width := 10;

Form1.Canvas.MoveTo(10, 10);

Form1.Canvas.LineTo(90, 20);

for y := 0 to 10 do begin

   for x := 0 to 25 do begin

     r := 0;

     for i := 0 to 3 do

       for j := 0 to 3 do

 

         r := r + GetRValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]);

     r := round(r / 16);

     g := 0;

     for i := 0 to 3 do

       for j := 0 to 3 do

         g := g + GetGValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]);

     g := round(g / 16);

     b := 0;

     for i := 0 to 3 do

       for j := 0 to 3 do

         b := b + GetBValue(Form1.Canvas.Pixels[4*x+i, 4*y+j]);

 

     b := round(b / 16);

     Form1.Canvas.Pixels[x,y+50] := RGB(r, g, b)

   end;

   Application.ProcessMessages;

end;

end;

 

 

©Drkb::03725

Автор советов: Даниил Карапетян

e-mail: delphi4all@narod.ru

 

Автор справки: Алексей Денисов

e-mail: aleksey@sch103.krasnoyarsk.su