Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 원을 그리는 방법 – HTML Canvas arc() 함수 활용하기

웹 페이지에 도형을 그릴 때 가장 널리 사용되는 방법은 HTML5 CanvasJavaScript를 함께 활용하는 것입니다. 이 글에서는 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>

코드 설명

  1. canvas 요소 선택querySelector()로 클래스명이 circleCanvas인 캔버스 요소를 가져옵니다.
  2. 2D 컨텍스트 생성getContext("2d")를 호출하여 캔버스에 그림을 그릴 수 있는 드로잉 컨텍스트를 얻습니다.
  3. 경로 시작beginPath()로 새로운 경로를 시작합니다.
  4. 원 정의arc(180, 100, 90, 0, 2 * Math.PI)로 중심 좌표(180, 100), 반지름 90픽셀인 완전한 원을 정의합니다.
  5. 그리기stroke()를 호출하여 실제로 원의 윤곽선을 화면에 렌더링합니다.

실행 결과

위 코드를 실행하면 버튼과 빈 캔버스가 표시됩니다.

JavaScript에서 원을 그리는 방법 – HTML Canvas arc() 함수 활용하기

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

JavaScript에서 원을 그리는 방법 – HTML Canvas arc() 함수 활용하기

추가 팁: 원을 색으로 채우고 싶다면?

stroke() 대신 fill() 메서드를 사용하면 원의 내부를 채울 수 있습니다.

circle.fillStyle = "tomato";
circle.fill();

fillStyle 속성에 원하는 색상 값을 지정한 후 fill()을 호출하면, 윤곽선 없이 색이 채워진 원을 그릴 수 있습니다. 두 메서드를 함께 사용하면 테두리와 내부 색상을 모두 적용할 수도 있습니다.