You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1595 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -88,6 +88,7 @@ procedure SprayPoints(DLBmp: TDLBitmap; X, Y: integer; Radians: integer; PColor:
|
|||||||
function GetRColor(const Color: TColor): Byte;
|
function GetRColor(const Color: TColor): Byte;
|
||||||
function GetGColor(const Color: TColor): Byte;
|
function GetGColor(const Color: TColor): Byte;
|
||||||
function GetBColor(const Color: TColor): Byte;
|
function GetBColor(const Color: TColor): Byte;
|
||||||
|
procedure SprayPoints(aCanvas: TCanvas; X, Y: integer; Radians: Integer; PColor: TColor);
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -377,7 +378,7 @@ end;
|
|||||||
|
|
||||||
procedure TDLBitmap.Spray(x, y, radian: integer; PColor: TColor);
|
procedure TDLBitmap.Spray(x, y, radian: integer; PColor: TColor);
|
||||||
begin
|
begin
|
||||||
SprayPoints(Self, x, y, radian, PColor);
|
SprayPoints(Self.Canvas, x, y, radian, PColor);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDLBitmap.FillEllipse(X1, Y1, X2, Y2: integer);
|
procedure TDLBitmap.FillEllipse(X1, Y1, X2, Y2: integer);
|
||||||
|
@ -558,5 +558,53 @@ begin
|
|||||||
Result := (Color and $FF0000) shr 16;
|
Result := (Color and $FF0000) shr 16;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure SprayPoints(aCanvas: TCanvas; X, Y: integer; Radians: Integer; PColor: TColor);
|
||||||
|
var
|
||||||
|
i, a, b, temp, ci, center: Integer;
|
||||||
|
begin
|
||||||
|
if aCanvas = nil then
|
||||||
|
Exit;
|
||||||
|
Randomize;
|
||||||
|
for i := 0 to Radians do
|
||||||
|
begin
|
||||||
|
temp := Random(100);
|
||||||
|
a := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then a := 0 - a;
|
||||||
|
temp := Random(100);
|
||||||
|
b := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then b := 0 - b;
|
||||||
|
if (a * a + b * b < Sqr(Round(Radians * 0.65))) then
|
||||||
|
begin
|
||||||
|
aCanvas.Pixels[X + a, Y + b] := PColor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
for i := 0 to Radians div 3 do
|
||||||
|
begin
|
||||||
|
temp := Random(100);
|
||||||
|
a := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then a := 0 - a;
|
||||||
|
temp := Random(100);
|
||||||
|
b := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then b := 0 - b;
|
||||||
|
if (a * a + b * b < Sqr(Round(Radians * 0.65))) then
|
||||||
|
begin
|
||||||
|
aCanvas.Pixels[X + a, Y + b] := PColor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
for i := 0 to Radians * 2 div 3 do
|
||||||
|
begin
|
||||||
|
temp := Random(100);
|
||||||
|
a := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then a := 0 - a;
|
||||||
|
temp := Random(100);
|
||||||
|
b := Random(Round(Radians * 0.65));
|
||||||
|
if (temp < 50) then b := 0 - b;
|
||||||
|
if (a * a + b * b < Sqr(Round(Radians * 0.65))) then
|
||||||
|
begin
|
||||||
|
aCanvas.Pixels[X + a, Y + b] := PColor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user