웹 페이지에 도형을 그릴 때 가장 널리 사용되는 방법은 HTML5 Canvas와 JavaScript를 함께 활용하는 것입니다. 이 글에서는 Canvas의 arc() 메서드를 사용하여 원을 그리는 방법을 단계별로 살펴보겠습니다.
핵심 개념: arc() 메서드 이해하기
arc() 메서드는 다음과 같은 매개변수를 받습니다.
- x, y: 원의 중심 좌표
- radius: 원의 반지름
- startAngle, endAngle: 호를 그릴 시작 각도와 끝 각도 (라디안 단위)
시작 각도를 0으로, 끝 각도를 2 * Math.PI(360도)로 지정하면 완전한 원이 그려집니다.
예제 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.circleCanvas {
border: 3px solid #110101;
}
</style>
</head>
<body>
<h1>Draw a circle in JavaScript</h1>
<canvas class="circleCanvas" width="400" height="200"></canvas><br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to create a circle in the above canvas element</h3>
<script>
let canvasEle = document.querySelector(".circleCanvas");
let BtnEle = document.querySelector(".Btn");
BtnEle.addEventListener("click", () => {
var circle = canvasEle.getContext("2d");
circle.beginPath();
circle.arc(180, 100, 90, 0, 2 * Math.PI);
circle.stroke();
});
</script>
</body>
</html>
코드 설명
- canvas 요소 선택 –
querySelector()로 클래스명이circleCanvas인 캔버스 요소를 가져옵니다. - 2D 컨텍스트 생성 –
getContext("2d")를 호출하여 캔버스에 그림을 그릴 수 있는 드로잉 컨텍스트를 얻습니다. - 경로 시작 –
beginPath()로 새로운 경로를 시작합니다. - 원 정의 –
arc(180, 100, 90, 0, 2 * Math.PI)로 중심 좌표(180, 100), 반지름 90픽셀인 완전한 원을 정의합니다. - 그리기 –
stroke()를 호출하여 실제로 원의 윤곽선을 화면에 렌더링합니다.
실행 결과
위 코드를 실행하면 버튼과 빈 캔버스가 표시됩니다.

'CLICK HERE' 버튼을 클릭하면 캔버스 위에 원이 나타납니다.

추가 팁: 원을 색으로 채우고 싶다면?
stroke() 대신 fill() 메서드를 사용하면 원의 내부를 채울 수 있습니다.
circle.fillStyle = "tomato"; circle.fill();
fillStyle 속성에 원하는 색상 값을 지정한 후 fill()을 호출하면, 윤곽선 없이 색이 채워진 원을 그릴 수 있습니다. 두 메서드를 함께 사용하면 테두리와 내부 색상을 모두 적용할 수도 있습니다.