Perlin noise: Difference between revisions
Content added Content deleted
(math style fix + add translation template for both Perl versions) |
(→{{header|Perl 6}}: using hexadecimal numbers for slightly shorter sequence) |
||
Line 128: | Line 128: | ||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |
||
{{trans|Java}} |
{{trans|Java}} |
||
<lang perl6> |
<lang perl6>module ImprovedNoise; |
||
151 160 137 91 90 15 131 13 201 95 96 53 194 233 7 225 140 36 103 30 69 142 8 |
|||
constant @permutation = map {:16($_)}, < |
|||
99 37 240 21 10 23 190 6 148 247 120 234 75 0 26 197 62 94 252 219 203 117 35 |
|||
97 a0 89 5b 5a f 83 d c9 5f 60 35 c2 e9 7 e1 8c 24 67 1e 45 8e 8 63 25 f0 15 a |
|||
17 be 6 94 f7 78 ea 4b 0 1a c5 3e 5e fc db cb 75 23 b 20 39 b1 21 58 ed 95 38 |
|||
57 ae 14 7d 88 ab a8 44 af 4a a5 47 86 8b 30 1b a6 4d 92 9e e7 53 6f e5 7a 3c |
|||
d3 85 e6 dc 69 5c 29 37 2e f5 28 f4 66 8f 36 41 19 3f a1 1 d8 50 49 d1 4c 84 bb |
|||
d0 59 12 a9 c8 c4 87 82 74 bc 9f 56 a4 64 6d c6 ad ba 3 40 34 d9 e2 fa 7c 7b 5 |
|||
ca 26 93 76 7e ff 52 55 d4 cf ce 3b e3 2f 10 3a 11 b6 bd 1c 2a df b7 aa d5 77 |
|||
f8 98 2 2c 9a a3 46 dd 99 65 9b a7 2b ac 9 81 16 27 fd 13 62 6c 6e 4f 71 e0 e8 |
|||
b2 b9 70 68 da f6 61 e4 fb 22 f2 c1 ee d2 90 c bf b3 a2 f1 51 33 91 eb f9 e ef |
|||
6b 31 c0 d6 1f b5 c7 6a 9d b8 54 cc b0 73 79 32 2d 7f 4 96 fe 8a ec cd 5d de 72 |
|||
43 1d 18 48 f3 8d 80 c3 4e 42 d7 3d 9c b4 |
|||
>; |
>; |
||
constant @p = |
constant @p = @permutation, @permutation; |
||
sub fade($_) { $_ * $_ * $_ * ($_ * ($_ * 6 - 15) + 10) } |
sub fade($_) { $_ * $_ * $_ * ($_ * ($_ * 6 - 15) + 10) } |
||
Line 153: | Line 153: | ||
} |
} |
||
sub noise($x is copy, $y is copy, $z is copy) { |
sub noise($x is copy, $y is copy, $z is copy) is export { |
||
my ($X, $Y, $Z) = ($x, $y, $z)».floor »+&» 255; |
my ($X, $Y, $Z) = ($x, $y, $z)».floor »+&» 255; |
||
my ($u, $v, $w) = map &fade, $x -= $X, $y -= $Y, $z -= $Z; |
my ($u, $v, $w) = map &fade, $x -= $X, $y -= $Y, $z -= $Z; |
||
Line 177: | Line 177: | ||
} |
} |
||
say noise 3.14, 42, 7;</lang> |
say noise 3.14, 42, 7; </lang> |
||
{{out}} |
{{out}} |
||
<pre>0.13691995878</pre> |
<pre>0.13691995878</pre> |