Coding Archive

canvas js๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ (1) - ์„  ๊ทธ๋ฆฌ๊ธฐ ๋ณธ๋ฌธ

๐Ÿ’ป Programming/Java Script

canvas js๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ (1) - ์„  ๊ทธ๋ฆฌ๊ธฐ

์ฝ”๋“ฑ์–ด 2022. 9. 29. 15:18

 

2D 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

 

 

Comments