Difference between revisions of "love.math.noise (日本語)"

(Created page with "{{newin (日本語)|0.9.0|090|type=関数}} 1~4次元によるシンプレックスまたはパーリンノイズの値を生成します。返値は同一引数を...")
 
m (Added example.)
Line 4: Line 4:
 
[http://en.wikipedia.org/wiki/Simplex_noise シンプレックスノイズ]は[http://ja.wikipedia.org/wiki/パーリンノイズ パーリンノイズ]と密接な関係があります。これは手続き内容の生成に対して幅広く使用されます。
 
[http://en.wikipedia.org/wiki/Simplex_noise シンプレックスノイズ]は[http://ja.wikipedia.org/wiki/パーリンノイズ パーリンノイズ]と密接な関係があります。これは手続き内容の生成に対して幅広く使用されます。
  
こちらにパーリンおよびシンプレックスノイズに対しての詳細な議論は[http://www.noisemachine.com/talk1/ 多数]の[http://libnoise.sourceforge.net/noisegen/ ウェブ・ページ] にあります。
+
こちらにパーリンおよびシンプレックスノイズに関する詳細な議論は[http://www.noisemachine.com/talk1/ 多数]の[http://libnoise.sourceforge.net/noisegen/ ウェブ・ページ] にあります。
  
 
{{notice|引数に整数が使われた場合のみ返値は不変になります。様々な返値を得るためには、単に整数を渡すのを避けてください。}}
 
{{notice|引数に整数が使われた場合のみ返値は不変になります。様々な返値を得るためには、単に整数を渡すのを避けてください。}}
  
 
== 関数 ==
 
== 関数 ==
1次元によるシンプレックスノイズノイズを生成します。
+
1次元によるシンプレックスノイズを生成します。
 
=== 概要 ===
 
=== 概要 ===
 
<source lang="lua">
 
<source lang="lua">
Line 55: Line 55:
 
=== 返値 ===
 
=== 返値 ===
 
{{param|number|value|[0, 1] の範囲におけるノイズ値。}}
 
{{param|number|value|[0, 1] の範囲におけるノイズ値。}}
 +
 +
== 用例 ==
 +
キーが打鍵されるたびに、二次元グリッドをシンプレックスノイズで塗りつぶします。
 +
<source lang="lua">
 +
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
 +
</source>
 +
 
== 関連 ==
 
== 関連 ==
 
* [[parent::love.math (日本語)]]
 
* [[parent::love.math (日本語)]]

Revision as of 03:24, 12 May 2017

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

関連


そのほかの言語