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

m (Added example.)
m
Line 1: Line 1:
{{newin (日本語)|[[0.9.0]]|090|type=関数}}
+
{{newin (日本語)|[[0.9.0 (日本語)|0.9.0
 +
]]|090|type=関数}}
 
1~4次元によるシンプレックスまたはパーリンノイズの値を生成します。返値は同一引数を与えられても、常に同じです。
 
1~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://libnoise.sourceforge.net/noisegen/ ウェブ・ページ] にあります。
  
 
{{notice|引数に整数が使われた場合のみ返値は不変になります。様々な返値を得るためには、単に整数を渡すのを避けてください。}}
 
{{notice|引数に整数が使われた場合のみ返値は不変になります。様々な返値を得るためには、単に整数を渡すのを避けてください。}}
Line 43: Line 44:
 
{{param|number|value|[0, 1] の範囲におけるノイズ値。}}
 
{{param|number|value|[0, 1] の範囲におけるノイズ値。}}
 
== 関数 ==
 
== 関数 ==
4次元によるシンプレックスまたはパーリンノイズ (version [[0.9.2]] 以前ではシンプレックスノイズ) を生成します。
+
4次元によるシンプレックスまたはパーリンノイズ (バージョン [[0.9.2]] 以前ではシンプレックスノイズ) を生成します。
 
=== 概要 ===
 
=== 概要 ===
 
<source lang="lua">
 
<source lang="lua">
Line 64: Line 65:
 
     for x = 1, #grid do
 
     for x = 1, #grid do
 
         for y = 1, #grid[x] do
 
         for y = 1, #grid[x] do
             local f = 255 * grid[x][y]
+
             local f = 1 * grid[x][y]
             love.graphics.setColor( f, f, f, 255 )
+
             love.graphics.setColor( f, f, f, 1 )
 
             love.graphics.rectangle( 'fill', x * 8, y * 8, 7, 7 )
 
             love.graphics.rectangle( 'fill', x * 8, y * 8, 7, 7 )
             love.graphics.setColor( 255, 255, 255, 255 )
+
             love.graphics.setColor( 1, 1, 1, 1 )
 
         end
 
         end
 
     end
 
     end
Line 94: Line 95:
 
{{#set:Description=1~4次元によるシンプレックスまたはパーリンノイズの値を生成します。}}
 
{{#set:Description=1~4次元によるシンプレックスまたはパーリンノイズの値を生成します。}}
 
== そのほかの言語 ==
 
== そのほかの言語 ==
{{i18n|love.math.noise}}
+
{{i18n (日本語)|love.math.noise}}

Revision as of 05:24, 13 June 2019

]]'
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次元によるシンプレックスまたはパーリンノイズ (バージョン 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 = 1 * grid[x][y]
            love.graphics.setColor( f, f, f, 1 )
            love.graphics.rectangle( 'fill', x * 8, y * 8, 7, 7 )
            love.graphics.setColor( 1, 1, 1, 1 )
        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

関連


そのほかの言語