pyvista.core.utilities.features.perlin_noise#
- perlin_noise(amplitude, freq: Sequence[float], phase: Sequence[float])[ソース]#
Perlin ノイズを実装する暗黙の関数を返します.
vtk.vtkPerlinNoise
を用いて,Perlin noise field を陰関数として計算します.vtk.vtkPerlinNoise
はvtk.vtkImplicitFunction
の具象実装である.Perlin noise は Ken Perlin によって開発された非周期的で連続的なノイズ関数で,実世界のオブジェクトのモデリングに有用です.ノイズパターンの振幅と周波数は調整可能です.このPerlinノイズの実装は,Graphics Gems IIのGreg Wardのバージョンから密接に派生したものです.
- パラメータ:
- amplitude
float
ノイズ関数の振幅.
振幅
amplitude
は負になることがある.ノイズ関数は-|Amplitude|
と|Amplitude|
の間でランダムに変化します.したがって,値の範囲は2*|Amplitude|
と大きくなっています.初期振幅は1です.- freqsequence[
float
] ノイズ関数の周波数,または物理的なスケール(高いほど細かいスケール).
周波数は,軸ごとに調整することも,全軸で同じにすることも可能です.
- phasesequence[
float
] ノイズ関数の位相を設定/返します.
このパラメータは,空間内でノイズ関数をシフトさせるために使用することができます(おそらく,別のスケールのノイズパターンとのビートを避けるため).位相は約単位ごとに繰り返す傾向があるので,0.5の位相は半周期のシフトとなります.
- amplitude
- 戻り値:
vtk.vtkPerlinNoise
vtk.vtkPerlinNoise
のインスタンスを暗黙の関数として,Perlin ノイズフィールドに変換します.pyvista.sample_function()
と共に使用します.
例
振幅0.1,全軸の周波数1,全軸の位相0,Perlinノイズ関数を作成します.
>>> import pyvista as pv >>> noise = pv.perlin_noise(0.1, (1, 1, 1), (0, 0, 0))
構造格子上でPerlinノイズをサンプリングし,それをプロットする.
>>> grid = pv.sample_function(noise, [0, 5, 0, 5, 0, 5]) >>> grid.plot()