Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Графика и Игры , Canvas

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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;

Код, предоставленный ниже, написан на Delphi и имитирует эффект разбрызгивания или разлета на контроле изображения (TImage). Когда вы перемещаете мышку над изображением или нажимаете левую кнопку мыши, случайное количество красных точек рассыпается вокруг курсора мыши.

Следующий шаг:

  1. Процедура Spray используется для рассыпания точек на канвасе. Она принимает четыре параметра: Canvas, x, y и r.
    • Canvas: Канвас, где будут рассыпаться точки.
    • x и y: Координаты центра разбрызгивания.
    • r: Максимальный радиус разбрызгивания.
  2. Внутри процедуры Spray цикл выполняется 100 раз для имитации процесса рассыпания. В каждой итерации он рассчитывает случайный угол (a) и радиус (rad) для точки.
  3. Затем он устанавливает цвет соответствующего пикселя на канвасе в красный используя свойство Pixels канваса.
  4. Событие Image1MouseMove триггерируется, когда вы перемещаете мышку над контролем изображения. Оно проверяет, нажата ли левая кнопка (т.е., ssLeft in Shift) и если да, то вызывает процедуру Spray с текущими координатами мыши (x, y) и максимальным радиусом 40.
  5. Событие Image1MouseDown триггерируется, когда вы нажимаете левую кнопку на контроле изображения. Оно также проверяет, нажата ли левая кнопка, и если да, то вызывает процедуру Spray с текущими координатами мыши (x, y) и максимальным радиусом 40.

Этот эффект может быть полезен в различных приложениях, таких как программы по искусству или дизайну, где вам нужно имитировать эффект разбрызгивания или разлета жидкостей.

Показано создание программы на Delphi, которая имитирует эффект разбрызгивания красного цвета вокруг курсора мыши при его движении и нажатии.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Canvas ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:11:18/0.0052590370178223/1