Perlin noise: Difference between revisions

Content added Content deleted
(The Java reference implementation uses Math.floor, whereas in Python we had int(). The difference is in how it handles negative inputs: int() rounds towards 0.)
(โ†’โ€Ž{{header|Raku}}: use emojis to encode the permutation)
Line 1,895:
(formerly Perl 6)
{{trans|Java}}
<syntaxhighlight lang="raku" line>constant @p = mapflat {:36($ @_.sort.antipairs.Hash{@_)}, flat <}("
๐Ÿ˜…๐Ÿ˜Ž๐Ÿ“ธ๐Ÿ‘‘๐Ÿ‘โœŒ ๐Ÿ’ปโœŠ๐Ÿ˜ป๐Ÿ’€๐Ÿ’๐Ÿƒ๐Ÿ˜ฒ๐Ÿคฆโ˜บ๐Ÿค™๐Ÿ”ต๐ŸŒ•๐Ÿ’Ž๐ŸŒŽ๐ŸŽถ๐Ÿ–•โš ๐Ÿ’†๐ŸŒ–๐Ÿคญโฃโšฝโžก๐Ÿ˜ฎโ˜น๐Ÿ˜‚
47 4G 3T 2J 2I F 3N D 5L 2N 2O 1H 5E 6H 7 69 3W 10 2V U 1X 3Y 8 2R 11 6O L A N
๐Ÿฅฐ๐Ÿ’ฃ๐Ÿคง๐Ÿทโ–ถ๐ŸŒˆ๐Ÿ˜ต๐ŸŽ๐Ÿ‘ผ๐Ÿฆ‹๐Ÿค๐Ÿ™‚๐Ÿ’Ÿ๐ŸŒ”โœ…๐ŸŒ‘๐Ÿ’๐Ÿ˜Ÿ๐ŸŒ’๐Ÿ‘Ž๐Ÿคช๐Ÿ˜ƒ๐Ÿ‘๐Ÿ‘๐Ÿ˜œโ“๐Ÿ’ฉ๐Ÿ“ฃ๐Ÿ˜™๐Ÿ˜–๐ŸŽต๐Ÿ˜
5A 6 44 6V 3C 6I 23 0 Q 5H 1Q 2M 70 63 5N 39 Z B W 1L 4X X 2G 6L 45 1K 2F 4U K
๐Ÿถ๐Ÿ˜“๐Ÿƒ๐Ÿ“Œ๐Ÿ”ด๐ŸŒบ๐ŸŒŠ๐Ÿ˜”๐Ÿพ๐Ÿ˜€๐Ÿ˜Œ๐Ÿคฃ๐Ÿ‘‰๐Ÿ’™๐Ÿค ๐Ÿ’ฆ๐Ÿป๐Ÿ™‹๐Ÿ’ฟ๐Ÿคข๐Ÿค‘๐Ÿ’“๐Ÿ‘ถ๐ŸŒž๐ŸŽ๐ŸŒธ๐Ÿฅ€๐ŸŒš๐Ÿคท๐Ÿ’๐Ÿ–ค๐ŸŠ
3H 3S 4R 4O 1W 4V 22 4L 1Z 3Q 3V 1C R 4M 25 42 4E 6F 2B 33 6D 3E 1O 5V 3P 6E 64
๐ŸŽ‰โญ๐ŸŽ‚๐Ÿ˜โ˜€๐Ÿšฉ๐Ÿ‘†๐Ÿ‰๐Ÿ™ˆ๐Ÿธ๐Ÿ’พ๐Ÿ˜ซ๐Ÿ™‡๐Ÿ‘โ„๐Ÿ˜—๐Ÿ˜น๐Ÿ˜ด๐Ÿ“๐Ÿ’ธ๐Ÿ’ž๐Ÿ˜ฌ๐Ÿ˜๐Ÿ‘Œ๐Ÿ˜’๐Ÿ’‹๐Ÿ’—๐Ÿ˜ถ๐Ÿ˜›๐Ÿ˜ชโ˜Ž๐ŸŽˆ
2X 2K 15 1J 1A 6T 14 6S 2U 3Z 1I 1T P 1R 4H 1 60 28 21 5T 24 3O 57 5S 2H I 4P
๐Ÿ€๐Ÿšถ๐Ÿค๐Ÿฅต๐Ÿ’จ๐Ÿ’งโ˜ ๐Ÿ™๐ŸŒ—๐Ÿ˜๐Ÿ’ก๐Ÿ’ช๐Ÿช๐Ÿ‘ˆ๐Ÿ‘‹๐Ÿ™Œ๐Ÿ™†๐Ÿ™…๐Ÿบ๐Ÿคž๐ŸŒนโœ”๐Ÿ“โœจ๐Ÿ˜ค๐Ÿ˜ญ๐ŸŒŒ๐ŸŒŸ๐Ÿค—๐Ÿ˜ฅ๐Ÿ˜˜๐Ÿ™
5K 5G 3R 3M 38 58 4F 2E 4K 2S 31 5I 4T 56 3 1S 1G 61 6A 6Y 3G 3F 5 5M 12 43 3A
๐Ÿ’ข๐Ÿฅณ๐Ÿ˜†โ˜„๐ŸŒด๐Ÿ˜ˆ๐Ÿ˜‘๐ŸŽผ๐Ÿค“๐Ÿ˜‡๐Ÿ’Œ๐Ÿ˜‰๐Ÿ˜•๐ŸŒฑ๐Ÿ˜šโšก๐Ÿ’ฐโค๐ŸŒ˜๐ŸงโŒ๐Ÿ’…๐Ÿ’–๐Ÿ’˜๐Ÿ‘…๐Ÿ’›๐Ÿค˜๐Ÿคค๐Ÿ˜ ๐Ÿ˜ฉ๐Ÿ’š๐Ÿ’
3I 73 2A 2D 5W 5R 5Q 1N 6B 1B G 1M H 52 59 S 16 67 53 4Q 5X 3B 6W 48 2 18 4A 4J
๐Ÿ›ฐ ๐Ÿฅ‚๐Ÿ’ƒ๐ŸคŸ๐Ÿฅบ๐ŸŒ“๐Ÿคฏ๐Ÿ˜ฑ๐Ÿคซ๐Ÿ™Š๐Ÿ–ฅ โœˆ๐Ÿ˜ฏ๐Ÿ˜ก๐Ÿ˜๐Ÿคฎ๐Ÿ‘‡๐ŸŒฟ๐Ÿ—ฃ ๐Ÿคจ๐Ÿฅดโœ‹๐Ÿคฌ๐Ÿ’•๐ŸŒป๐Ÿ˜ฐ๐Ÿš€๐ŸŒ๐Ÿ˜ฃ๐Ÿ˜ท๐Ÿ’”๐Ÿ˜‹
1Y 65 49 2T 4B 4N 17 4S 9 3L M 13 71 J 2Q 30 32 27 35 68 6G 4Y 55 34 2W 62 6U
๐Ÿ˜จ๐Ÿ‘Š๐Ÿ™ƒ๐Ÿ˜ž๐Ÿ’๐Ÿ’ฅ๐ŸŒผ๐ŸŒท๐Ÿ’ซโ˜•๐Ÿ˜„๐Ÿงก๐Ÿ”ฅ๐Ÿคฉ๐Ÿ™„๐Ÿ‘ป๐Ÿค”๐Ÿ’œ๐ŸŽค๐ŸŒโฌ‡๐Ÿ†๐Ÿคฒ๐Ÿ•บ๐Ÿ’ฏ๐Ÿ˜ณ๐Ÿ‘€๐ŸŽŠ๐Ÿšจ๐ŸŽ€๐Ÿ˜Š๐Ÿ˜ข
2P 6C 6Z Y 6Q 5D 6M 5U 40 C 5B 4Z 4I 6P 29 1F 41 6J 6X E 6N 2Z 1D 5C 5Y V 51 5J
".words.join.comb) xx 2;
2Y 4D 54 2C 5O 4W 37 3D 1E 19 3J 4 46 72 3U 6K 5P 2L 66 36 1V T O 20 6R 3X 3K
5F 26 1U 5Z 1P 4C 50
> xx 2;
 
sub fade($_) { $_ * $_ * $_ * ($_ * ($_ * 6 - 15) + 10) }
Line 1,922 โŸถ 1,920:
my ($AA, $AB) = @p[$_] + $Z, @p[$_ + 1] + $Z given @p[$X] + $Y;
my ($BA, $BB) = @p[$_] + $Z, @p[$_ + 1] + $Z given @p[$X + 1] + $Y;
lerp($w, lerp($v, lerp($u, grad(@p[$AA ], $x , $y , $z ),
grad(@p[$BA ], $x - 1, $y , $z )),
lerp($u, grad(@p[$AB ], $x , $y - 1, $z ),
grad(@p[$BB ], $x - 1, $y - 1, $z ))),
lerp($v, lerp($u, grad(@p[$AA + 1], $x , $y , $z - 1 ),
grad(@p[$BA + 1], $x - 1, $y , $z - 1 )),
lerp($u, grad(@p[$AB + 1], $x , $y - 1, $z - 1 ),
grad(@p[$BB + 1], $x - 1, $y - 1, $z - 1 ))));
}
 
say noise 3.14, 42, 7;</syntaxhighlight>
</syntaxhighlight>
{{out}}
<pre>0.13691995878</pre>