скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Изобразить эффект разбрызгивания



Оформил: DeeCo

procedure Spray(Canvas: TCanvas; x, y, r: Integer; Color: TColor);
 var
   rad, a: Single;
   i: Integer;
 begin
   for i := 0 to 100 do
   begin
     a   := Random * 2 * pi;
     rad := Random * r;
     Canvas.Pixels[x + Round(rad * Cos(a)), y + Round(rad * Sin(a))] := Color;
   end;
 end;

 procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer);
 begin
   if ssLeft in Shift then Spray(Image1.Canvas, x, y, 40, clRed);
 end;

 procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
   if ssLeft in Shift then Spray(Image1.Canvas, x, y, 40, clRed);
 end;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook