์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ๋ฐ๋๋ผ JS๋ก ๊ทธ๋ฆผํ ๋ง๋ค๊ธฐ
- tailwindcss
- HTML
- ๋ ธ๋ง๋์ฝ๋
- typescript
- ์ฝ๋ฉ์ผ๊ธฐ
- canvas image
- jest
- negative margin
- queryprovider
- next.js
- react
- CSS
- axios-mock-adapte
- javascript
- ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ
- tanstack-query
- JS
- ์น ๋ธ๋ผ์ฐ์ ๊ตฌ์กฐ
- HTML ํ์ผ๊ตฌ์กฐ
- canvas js
- canvas
- ํ๋ก ํธ์๋
- JAVA Script
- ์ฝ๋ฉ๋ ํ
- ์ฝ์ฝ์ํก ํด๋ก ์ฝ๋ฉ
- clone coding
- ์น ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
- ์ํ์ฝ๋ฉ
- ๋ ธ๋ง๋ ์ฝ๋
- Today
- Total
Coding Archive
canvas js๋ก ๊ตฌํํ๊ธฐ (1) - ์ ๊ทธ๋ฆฌ๊ธฐ ๋ณธ๋ฌธ
canvas js๋ก ๊ตฌํํ๊ธฐ (1) - ์ ๊ทธ๋ฆฌ๊ธฐ
์ฝ๋ฑ์ด 2022. 9. 29. 15:182D Context
canvas๋ context๋ฅผ ๊ฐ๊ณ ์๋ html ์์๋ก, context๋ canvas ์์์ ํฝ์ ์ ๋ค๋ฃจ๋ ๊ฒ์ ๋๋ค.
context๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ canvas๋ getContext() ๋ฉ์๋๊ฐ ํ์ํ๊ณ , ์ด ๋ฉ์๋๋ฅผ ํตํด canvas์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
2d ๊ทธ๋ํฝ์ ๊ฒฝ์ฐ "2d"๋ฅผ ๋ฃ์ด์ค๋๋ค.
1
|
const ctx = canvas.getContext("2d");
|
cs |
canvas ํฌ๊ธฐ ์ค์
canvas ํฌ๊ธฐ ์ค์ ์ css์์ ์ง์ ํ ๊ฒ๊ณผ ๋ณ๋๋ก ๋ค์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
1
2
|
canvas.width = 700;
canvas.height = 700;
|
cs |
* ์ด๋ ๊ฒ ๋ฐ๋ก ์ง์ ํ๋ ์ผ์ด ์๋๋ก ํ๊ธฐ ์ํด๏ผcanvas id="jsCanvas" width="700" height="700"๏ผ์ฒ๋ผ html ๋ด๋ถ์ width์ height๋ฅผ ์ง์ ํ๋ฉด ๋ฐ๋ก element์ ๊ฐ์ ๋ถ์ฌํ์ง ์์๋ ์ ์์ ์ผ๋ก ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง๊ฒ ๋ฉ๋๋ค.
์ ๊ทธ๋ฆฌ๊ธฐ ๋ฐฉ๋ฒ
1
2
3
4
5
6
7
|
ctx.beginPath(); // ๊ฒฝ๋ก ์์ฑ - ์๋ก์ด ์ ๊ทธ๋ฆฌ๊ธฐ
ctx.moveTo(x, y); // ์ ์์ ์ขํ - ์ ์ถ๋ฐ์
ctx.lineTo(x, y); // ์ ๋ ์ขํ - ์ ๋์ฐฉ์
ctx.stroke(); // ์ ๊ทธ๋ฆฌ๊ธฐ
|
cs |
* ์ฌ๋ฌ ๊ฐ์ ์ ์ ๊ทธ๋ฆด ๋๋ ๋งค๋ฒ beginPath() ํธ์ถํด์ผ ํ๊ณ , beginPath()๋ฅผ ํธ์ถํ์ง ์์ผ๋ฉด, ๋์ฐฉ์ ๋ค์ ๊ณ์ ์๋ ์ ์ด ๊ทธ๋ ค์ง๋๋ค.
์ฌ๊ฐํ ๊ทธ๋ฆฌ๊ธฐ
1
2
3
|
ctx.strokeRect(x, y, width, height); // ์ฌ๊ฐํ ์ค๊ณฝ์ ๊ทธ๋ฆฌ๊ธฐ
ctx.fillRect(x, y, width, height); // ์์น ๋ ์ฌ๊ฐํ
|
cs |
์ ์ฑ์ฐ๊ธฐ
1
2
3
|
ctx.fill(); // ๋ด๋ถ์ ์ ์ฑ์ฐ๊ธฐ
ctx.flilStyle // ๋ด๋ถ
|
cs |
์ ๋์์ธ ์ค์
1
2
3
4
5
6
7
|
ctx.strokestyle // ์ ์ ์์
ctx.lineWidth // ์ ์ ๋๊ป ์ค์
ctx.lineCap // ์ ์ ๋๋ถ๋ถ ์ค์ (butt: ์ขํ์์ ๋๋จ/ square: ์ ์ ๋๊ป๋งํผ ๊ธธ์ด๋ฅผ ๋๋ ค์ ๋๋จ/ round: ์ ์ ๋์ด ๋ฅ๊ธ๊ฒ ๋๋จ)
ctx.lineJoin // ์ ์ ๊บพ์ธ ๋ถ๋ถ ์ค์ (mitter: ๊ฐ์ง ๋ชจ์๋ฆฌ/ round: ๋ฅ๊ทผ ๋ชจ์๋ฆฌ/ bevel: ๋์ด ์๋ฆฐ ๋ชจ์๋ฆฌ)
|
cs |