love.math.noise (日本語)

LÖVE 0.9.0 から使用可能
この関数は以前のバージョンでは非対応です。

1~4次元によるシンプレックスまたはパーリンノイズの値を生成します。返値は同一引数を与えられても、常に同じです。

シンプレックスノイズパーリンノイズと密接な関係があります。これは手続き内容の生成に対して幅広く使用されます。

こちらにパーリンおよびシンプレックスノイズに関する詳細な議論は多数ウェブ・ページ にあります。

O.png 引数に整数が使われた場合のみ返値は不変になります。様々な返値を得るためには、単に整数を渡すのを避けてください。  


関数

1次元によるシンプレックスノイズを生成します。

概要

value = love.math.noise( x )

引数

number x
ノイズ値の生成に使用する数値。

返値

number value
[0, 1] の範囲におけるノイズ値。

関数

2次元によるシンプレックスノイズを生成します。

概要

value = love.math.noise( x, y )

引数

number x
第一の値としてノイズ値を生成するために使用される2次元ベクトル。
number y
第二の値としてノイズ値を生成するために使用される2次元ベクトル。

返値

number value
[0, 1] の範囲におけるノイズ値。

関数

3次元によるシンプレックスまたはパーリンノイズ (version 0.9.2 以前ではシンプレックスノイズ) を生成します。

概要

value = love.math.noise( x, y, z )

引数

number x
第一の値としてノイズ値を生成するために使用される3次元ベクトル。
number y
第二の値としてノイズ値を生成するために使用される3次元ベクトル。
number z
第三の値としてノイズ値を生成するために使用される3次元ベクトル。

返値

number value
[0, 1] の範囲におけるノイズ値。

関数

4次元によるシンプレックスまたはパーリンノイズ (version 0.9.2 以前ではシンプレックスノイズ) を生成します。

概要

value = love.math.noise( x, y, z, w )

引数

number x
第一の値としてノイズ値を生成するために使用される4次元ベクトル。
number y
第二の値としてノイズ値を生成するために使用される4次元ベクトル。
number z
第三の値としてノイズ値を生成するために使用される4次元ベクトル。
number w
第四の値としてノイズ値を生成するために使用される4次元ベクトル。

返値

number value
[0, 1] の範囲におけるノイズ値。

用例

キーが打鍵されるたびに、二次元グリッドをシンプレックスノイズで塗りつぶします。

local grid = {}

function love.draw()
    for x = 1, #grid do
        for y = 1, #grid[x] do
            local f = 255 * grid[x][y]
            love.graphics.setColor( f, f, f, 255 )
            love.graphics.rectangle( 'fill', x * 8, y * 8, 7, 7 )
            love.graphics.setColor( 255, 255, 255, 255 )
        end
    end
end

-- グリッド内にある各ピクセルをシンプレックスノイズで塗りつぶします。
local function noise()
    for x = 1, 60 do
        for y = 1, 60 do
            grid[x] = grid[x] or {}
            grid[x][y] = love.math.noise( x + love.math.random(), y + love.math.random() )
        end
    end
end

function love.keypressed()
    noise()
end

関連


そのほかの言語