From 1a98ff484b766703e6006acdd65245e0b3ecd9d0 Mon Sep 17 00:00:00 2001 From: ronaldhordijk Date: Tue, 28 Jun 2005 16:37:55 +0000 Subject: [PATCH] Returned changes for 'Fix Randomize gradient floating point error' because of unexpected side effect. Worked around the problem another way --- 2.10/Source/GradientHlpr.pas | 16 ++++++++++------ 2.10/Source/cmap.pas | 9 +++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/2.10/Source/GradientHlpr.pas b/2.10/Source/GradientHlpr.pas index 09dd3e4..1d393e7 100644 --- a/2.10/Source/GradientHlpr.pas +++ b/2.10/Source/GradientHlpr.pas @@ -65,14 +65,18 @@ var hsv: array[0..2] of double; pal: TColorMap; begin + rgb[0] := 0; + rgb[1] := 0; + rgb[2] := 0; + inc(MainSeed); RandSeed := Mainseed; nodes := random((MaxNodes - 1) - (MinNodes - 2)) + (MinNodes - 1); n := 256 div nodes; b := 0; - hsv[0] := (random(MaxHue - (MinHue - 1)) + MinHue) / 100; - hsv[1] := (random(MaxSat - (MinSat - 1)) + MinSat) / 100; - hsv[2] := (random(MaxLum - (MinLum - 1)) + MinLum) / 100; + hsv[0] := 0.01 * (random(MaxHue - (MinHue - 1)) + MinHue); + hsv[1] := 0.01 * (random(MaxSat - (MinSat - 1)) + MinSat); + hsv[2] := 0.01 * (random(MaxLum - (MinLum - 1)) + MinLum); hsv2rgb(hsv, rgb); Pal[0][0] := Round(rgb[0] * 255); Pal[0][1] := Round(rgb[1] * 255); @@ -80,9 +84,9 @@ begin repeat a := b; b := b + n; - hsv[0] := (random(MaxHue - (MinHue - 1)) + MinHue) / 100; - hsv[1] := (random(MaxSat - (MinSat - 1)) + MinSat) / 100; - hsv[2] := (random(MaxLum - (MinLum - 1)) + MinLum) / 100; + hsv[0] := 0.01 * (random(MaxHue - (MinHue - 1)) + MinHue); + hsv[1] := 0.01 * (random(MaxSat - (MinSat - 1)) + MinSat); + hsv[2] := 0.01 * (random(MaxLum - (MinLum - 1)) + MinLum); hsv2rgb(hsv, rgb); if b > 255 then b := 255; Pal[b][0] := Round(rgb[0] * 255); diff --git a/2.10/Source/cmap.pas b/2.10/Source/cmap.pas index 12d06da..8662de9 100644 --- a/2.10/Source/cmap.pas +++ b/2.10/Source/cmap.pas @@ -83,11 +83,12 @@ var f, p, q, t, v: double; begin try - rgb[0] := 0; - rgb[1] := 0; - rgb[2] := 0; - +// rgb[0] := 0; +// rgb[1] := 0; +// rgb[2] := 0; + j := floor(hsv[0]); + f := hsv[0] - j; v := hsv[2]; p := hsv[2] * (1 - hsv[1]);