2 # A python perlin noise implementation, from
3 # http://www.fundza.com/c4serious/noise/perlin/perlin.html
5 # This is used for testing how to create maps with a python script.
10 151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,
11 30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,
12 62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,
13 125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,
14 83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,
15 143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,
16 196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,
17 250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,
18 58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,
19 221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,
20 224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,
21 12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,
22 199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,
23 205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,
24 151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,
25 30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,
26 62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,
27 125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,
28 83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,
29 143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,
30 196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,
31 250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,
32 58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,
33 221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,
34 224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,
35 12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,
36 199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,
37 205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180)
40 return a
+ t
* (b
- a
)
43 return t
* t
* t
* (t
* (t
* 6 - 15) + 10)
45 def grad(hash, x
, y
, z
):
53 elif h
== 12 or h
== 14:
65 X
= int(math
.floor(x
)) & 255
66 Y
= int(math
.floor(y
)) & 255
67 Z
= int(math
.floor(z
)) & 255
92 gradAA
= grad(pAA
, x
, y
, z
)
93 gradBA
= grad(pBA
, x
-1, y
, z
)
94 gradAB
= grad(pAB
, x
, y
-1, z
)
95 gradBB
= grad(pBB
, x
-1, y
-1, z
)
96 gradAA1
= grad(pAA1
,x
, y
, z
-1)
97 gradBA1
= grad(pBA1
,x
-1, y
, z
-1)
98 gradAB1
= grad(pAB1
,x
, y
-1, z
-1)
99 gradBB1
= grad(pBB1
,x
-1, y
-1, z
-1)
101 lerp(v
, lerp(u
, gradAA
, gradBA
), lerp(u
, gradAB
, gradBB
)),
102 lerp(v
, lerp(u
, gradAA1
,gradBA1
),lerp(u
, gradAB1
,gradBB1
)))