私はp5.jsでPerlinノイズ画像を描画しようとしています。私はDaniel Shiffmanのチュートリアルに続き、彼は2D Perlinノイズhereを設定する方法の例を示しています(便宜上これをthis JSFiddle sketchにロードしました)。p5.jsで歪みのない2Dパーリンノイズを画像として取得するにはどうすればよいですか?
今、私はPerlinノイズで満たされたキャンバス全体を必要としませんが、私はキャンバス内の画像ファイルのように使うことができるパーリンノイズの(より小さな)画像が必要です。ですから、セットアップ機能では、私はcreateImage()
を使って、まったく同じアルゴリズムを使ってPerlinノイズを画像にロードしました。しかし、これを表示すると、ノイズは完全に歪んで見えます。ここで
は私のコードです:
// noise code originally by
// Daniel Shiffman
// http://codingtra.in
// http://patreon.com/codingtrain
// Code for: https://youtu.be/ikwNrFvnL3g
var inc = 0.01;
var noiseImg;
function setup() {
createCanvas(640, 360);
pixelDensity(1);
background("red");
var yoff = 0;
noiseImg = createImage(200, 200);
noiseImg.loadPixels();
for (var y = 0; y < height; y++) {
var xoff = 0;
for (var x = 0; x < width; x++) {
var index = (x + y * width) * 4;
var r = noise(xoff, yoff) * 255;
noiseImg.pixels[index + 0] = r;
noiseImg.pixels[index + 1] = r;
noiseImg.pixels[index + 2] = r;
noiseImg.pixels[index + 3] = 255;
xoff += inc;
}
yoff += inc;
}
noiseImg.updatePixels();
}
function draw() {
image(noiseImg, 0, 0);
}
ノイズアルゴリズムが変更されていないと私はそれについて何を行うことができますが、それが歪んでいる理由は、誰も知っていますか?
ありがとうございます!
あなたの 'width'と' height'変数は決して初期化されません。それらを設定すると動作します。 – DarthJDG
@DarthJDG 'width'と' height'変数は、P5.jsライブラリによって設定されます。 –