点描
実行例
ソースコード
TypeScript
解説/アルゴリズム
画像内にあるランダムなピクセルを取得し、そのピクセルの位置にピクセルの色で円を描画する。
コード例
import * as p5 from "p5";
new p5((p: p5) => {
let image: p5.Image;
p.preload = () => {
image = p.loadImage("./0.jpg");
};
p.setup = () => {
p.createCanvas(p.windowWidth, p.windowHeight);
image.loadPixels();
};
p.draw = () => {
// 1フレームで複数個の描画をするためループさせる
for (let i = 0; i < 20; i++) {
const x = p.floor(p.random(image.width));
const y = p.floor(p.random(image.height));
const color = getPixel(x, y);
p.fill(color);
p.circle(x, y, 10);
}
};
function getPixel(x: number, y: number): number[] {
const i = (y * image.width + x) * 4;
return [
image.pixels[i],
image.pixels[i + 1],
image.pixels[i + 2],
image.pixels[i + 3],
];
}
});