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>constant @permutation = <
<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
11 32 57 177 33 88 237 149 56 87 174 20 125 136 171 168 68 175 74 165 71 134
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
139 48 27 166 77 146 158 231 83 111 229 122 60 211 133 230 220 105 92 41 55 46
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
245 40 244 102 143 54 65 25 63 161 1 216 80 73 209 76 132 187 208 89 18 169 200
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
196 135 130 116 188 159 86 164 100 109 198 173 186 3 64 52 217 226 250 124 123
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
5 202 38 147 118 126 255 82 85 212 207 206 59 227 47 16 58 17 182 189 28 42 223
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
183 170 213 119 248 152 2 44 154 163 70 221 153 101 155 167 43 172 9 129 22 39
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
253 19 98 108 110 79 113 224 232 178 185 112 104 218 246 97 228 251 34 242 193
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
238 210 144 12 191 179 162 241 81 51 145 235 249 14 239 107 49 192 214 31 181
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
199 106 157 184 84 204 176 115 121 50 45 127 4 150 254 138 236 205 93 222 114
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
67 29 24 72 243 141 128 195 78 66 215 61 156 180
43 1d 18 48 f3 8d 80 c3 4e 42 d7 3d 9c b4
>;
>;
constant @p = flat @permutation xx 2;
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>