75 function f(t: double): double; |
75 function f(t: double): double; |
76 begin |
76 begin |
77 f:= t * t * t * (t * (t * 6 - 15) + 10); |
77 f:= t * t * t * (t * (t * 6 - 15) + 10); |
78 end; |
78 end; |
79 |
79 |
80 const permutation: array[byte] of LongInt = ( 151,160,137,91,90,15, |
80 procedure inoise_setup(); |
81 131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23, |
81 var i, ii, t: LongInt; |
82 190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33, |
82 begin |
83 88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166, |
83 for i:= 0 to 254 do |
84 77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244, |
84 p[i]:= i + 1; |
85 102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196, |
85 p[255]:= 0; |
86 135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123, |
|
87 5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42, |
|
88 223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9, |
|
89 129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228, |
|
90 251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107, |
|
91 49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254, |
|
92 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180 |
|
93 ); |
|
94 |
86 |
95 procedure inoise_setup(); |
87 for i:= 0 to 254 do |
96 var i: LongInt; |
88 begin |
97 begin |
89 ii:= GetRandom(256 - i) + i; |
|
90 t:= p[i]; |
|
91 p[i]:= p[ii]; |
|
92 p[ii]:= t |
|
93 end; |
|
94 |
98 for i:= 0 to 255 do |
95 for i:= 0 to 255 do |
99 begin |
96 p[256 + i]:= p[i]; |
100 p[256 + i]:= permutation[i]; |
|
101 p[i]:= permutation[i] |
|
102 end; |
|
103 |
97 |
104 for i:= 0 to 255 do |
98 for i:= 0 to 255 do |
105 fadear[i]:= trunc($1000 * f(i / 256)); |
99 fadear[i]:= trunc($1000 * f(i / 256)); |
106 end; |
100 end; |
107 |
101 |