๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป

p5.js

๐Ÿ‘‰
p5.js links

๐Ÿ“Œ
Reminders
  • ์ง์ ‘ ํƒ€์ดํ•‘ํ•˜์ž.
  • ํ•„์š”ํ•œ ๊ฑธ ์ธํ„ฐ๋„ท์—์„œ ์ฐพ์•„๋ณด์ž.
  • ์ด๊ฑธ๋กœ ๋ญ˜ ์žฌ๋ฐŒ๊ฒŒ ํ• ์ง€ ๊ณ ๋ฏผํ•˜์ž.

Processing


์‰ฝ๊ณ  ๋ณด์ด๊ฒŒ ๋ง˜๊ป
  • Easy to use
  • WYSIWYG
  • Opensource

p5.js ์‹œ์ž‘ํ•ด ๋ณด๊ธฐ


p5.js๋Š”?
  • ํฌ๋ฆฌ์—์ดํ‹ฐ๋ธŒ ์ฝ”๋”ฉ์„ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • Processing์„ ์˜ค๋Š˜๋‚ ์˜ ์›น์— ๋งž๊ฒŒ ํ•ด์„ํ•œ ๊ฒƒ

์›น ์—๋””ํ„ฐ ์—ด๊ณ  ์‹œ์ž‘ํ•˜๊ธฐ

p5.js๋กœ ์Šค์ผ€์น˜
  • p5.js ์›น์—๋””ํ„ฐ ์‚ดํŽด๋ณด๊ธฐ
  • ๋‚˜์˜ ์ฒซ ์Šค์ผ€์น˜: ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ญ˜ ์กฐ๊ธˆ ๊ทธ๋ ค๋ณด์ž.
function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
}
  • ๊ทธ๋ ค๋ณธ ๊ฑธ ์ €์žฅํ•˜๋ ค๋ฉด?
  • setup๊ณผ draw๋Š” ๊ฐ๊ฐ ์–ด๋–ค ์—ญํ• ์„ ํ• ๊นŒ?
  • draw ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ•˜๋ ค๋ฉด: ํ™”๋ฉด์— ๊ฐ€์šด๋ฐ (20, 20) ์›์ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™
  • ๊ทธ๋ฆฌ๋Š” ํฌ๊ธฐ๋ฅผ ์กฐ๊ธˆ ํ‚ค์›Œ๋ณผ๊นŒ?
  • ์ƒ‰์ƒ ๋‹ค๋ฃจ๊ธฐ
  • ๋ฐ˜๋ณตํ•ด์„œ ๊ทธ๋ฆฌ๊ธฐ
p5.js๋กœ ์ด๋ฏธ์ง€ ๋‹ค๋ฃจ๊ธฐ
  • ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ
  • ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ์— ๋งž์ถ”์–ด ์ด๋ฏธ์ง€ ๋‚˜ํƒ€๋‚ด๊ธฐ (p5.Image ํด๋ž˜์Šค)
p5.js๋กœ ์ƒํ˜ธ์ž‘์šฉ
  • ๋งˆ์šฐ์Šค ๋ฐ์ดํ„ฐ
function draw() {
  background(255);
  frameRate(12);
  text("X: "+mouseX, 0, height/4);
  text("Y: "+mouseY, 0, height/2);
}
  • Kitty ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ
  • ์›์œผ๋กœ ๊ถค์  ๊ทธ๋ฆฌ๊ธฐ
  • sin + millis ๋ฅผ ์ด์šฉํ•˜์—ฌ ์› ํฌ๊ธฐ ๋ฐ”๊พธ์–ด ๊ถค์  ๊ทธ๋ฆฌ๊ธฐ

Reference link

5์›” 9์ผ ๊ฐ•์˜๊นŒ์ง€ ์‚ดํŽด๋ณด๊ณ  ์˜ฌ ์ž๋ฃŒ๋“ค

๐Ÿ‘‰
Painting with Code - Andreas Refsgaard