๊ด€๋ฆฌ ๋ฉ”๋‰ด

Wookang makes AI

์Šคํ”„๋ผ์ดํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—ฐ์Šต ๋ณธ๋ฌธ

Moonlit ๊ฐœ๋ฐœ๊ธฐ

์Šคํ”„๋ผ์ดํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—ฐ์Šต

ํ‘ธ๋ฅธ๊นƒ๋ฐœ๐Ÿณ๏ธ 2023. 10. 5. 15:18

์˜ˆ์ „, ๊ฑฐ์˜ 10๋…„์ „์˜ canvas ์กฐ์ž‘ ๋ฐฉ์‹๊ณผ ๋งŽ์ด ๋‹ฌ๋ผ์กŒ๋‹ค.

๊ทธ๋• html5๊ฐ€ ๋ง‰ ๋ณดํŽธํ™”๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ง€์›ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋‹ฌ๋ž๊ณ  ํ•จ์ˆ˜ ์ด๋ฆ„๋„ ๋ชจ๋‘ ๋‹ฌ๋ž๋‹ค.

javascript์— class๊ฐ€ ๋„์ž…๋˜๊ธฐ ์ด์ „์ด์–ด์„œ object๋ฅผ ๋น„์Šทํ•œ ๋Š๋‚Œ์œผ๋กœ overridingํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

๋ฌด์—‡๋ณด๋‹ค ๊ฐ€์žฅ ๋‹ฌ๋ผ์ง„ ๊ฑด requestAnimationFrame()๊ฐ™์€ renderํ•จ์ˆ˜๋‹ค.

์ด์ œ ๋” ์ด์ƒ setInterval()์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฒƒ ๊ฐ™์•„ ๋‹คํ–‰์ด๋‹ค.

 

๊ทธ๋Ÿฌ๊ณ  ๋ณด๋‹ˆ svg ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ๋ช‡๊ฐœ ๋งŒ๋“ค์–ด๋ดค์ง€๋งŒ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณธ ์ ์ด ์—†์—ˆ๋‹ค.

๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•  ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜์ง€ ์•Š์•˜๋‹ค.

 

1. ์ผ๋‹จ canvas๊ด€๋ จ ์ฝ”๋”ฉ์„ ๋งŽ์ด ์žŠ์–ด๋ฒ„๋ ธ๊ณ  - ๋” ์ด์ƒ ์ด๋Ÿฐ ์ผ์ด ์—†๋„๋ก ํ™•์‹คํžˆ ์ •๋ฆฌํ•ด๋†“์ž

2. ์—ฐ์Šต์šฉ ์ƒ˜ํ”Œ ์ด๋ฏธ์ง€๋“ค์˜ width๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ฑฐ๋‚˜ ๊ฐ€๋กœx์„ธ๋กœ๋กœ ๋งŒ๋“ค์–ด์ง„ ์Šคํ”„๋ผ์ดํŠธ ์ด๋ฏธ์ง€์—ฌ์„œ ์ฒ˜์Œ ์ต์ˆ™ํ•ด์ง€๋Š”๋ฐ ๊ณ ์ƒํ–ˆ๋‹ค.

์ด์ œ ํƒ€์ผ ์ด๋ฏธ์ง€๋กœ ๋ฐฐ๊ฒฝ์„ ์ฑ„์šฐ๊ณ  requestAnimationFrame์œผ๋กœ ์• ๋‹ˆ์—์ด์…˜์„ ํ•˜๊ณ  ์ปจํŠธ๋กค ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๋งŒ๋“ค๊ณ  ์ด๊ฑธ ๋ชจ๋“ˆํ™” ํ•ด๋†“์ž.

Comments