여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. HTML Canvas - 그라디언트

HTML Canvas – 그라디언트

1개월전 작성

HTML Canvas 그라데이션

HTML Canvas에서는 그라데이션(gradient) 기능을 이용해 부드럽게 색상이 전환되는 효과를 만들 수 있다. 대표적으로 선형(linear)과 방사형(radial) 두 가지 그라데이션이 있다.

그라데이션 종류

  • 선형 그라데이션 (Linear Gradient)
  • 방사형 그라데이션 (Radial Gradient)

선형 그라데이션

createLinearGradient(x0, y0, x1, y1) 함수로 선형 그라데이션 객체를 만든다. addColorStop(offset, color)로 색상 전환 지점을 추가할 수 있다.

메서드/매개변수 설명
createLinearGradient(x0, y0, x1, y1) (x0, y0)에서 (x1, y1) 방향으로 색이 변하는 선형 그라데이션을 생성한다
addColorStop(offset, color) 0~1 사이의 위치(offset)에 색상을 지정한다

기본 선형 그라데이션 예제

<canvas id="myCanvas1" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas1");
var ctx = c.getContext("2d");
var gradient = ctx.createLinearGradient(0, 0, 300, 0);
gradient.addColorStop(0, "red");
gradient.addColorStop(1, "yellow");
ctx.fillStyle = gradient;
ctx.fillRect(10, 10, 280, 130);
</script>

이 예제는 왼쪽부터 오른쪽으로 빨간색에서 노란색으로 변하는 선형 그라데이션을 적용한 사각형을 그린다.

여러 색상으로 선형 그라데이션

<canvas id="myCanvas2" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas2");
var ctx = c.getContext("2d");
var gradient = ctx.createLinearGradient(0, 0, 300, 0);
gradient.addColorStop(0, "magenta");
gradient.addColorStop(0.5, "blue");
gradient.addColorStop(1, "red");
ctx.fillStyle = gradient;
ctx.fillRect(10, 10, 280, 130);
</script>

이 예제는 세 가지 색상(마젠타, 파랑, 빨강)으로 점진적으로 전환되는 선형 그라데이션을 적용한다.

방사형 그라데이션

createRadialGradient(x0, y0, r0, x1, y1, r1) 함수로 방사형 그라데이션 객체를 만든다. 중심과 반지름을 지정해 원형으로 색이 번진다.

메서드/매개변수 설명
createRadialGradient(x0, y0, r0, x1, y1, r1) 첫 번째 원의 중심(x0, y0)과 반지름(r0), 두 번째 원의 중심(x1, y1)과 반지름(r1)으로 원형 그라데이션을 생성한다
addColorStop(offset, color) 0~1 사이의 위치(offset)에 색상을 지정한다

기본 방사형 그라데이션 예제

<canvas id="myCanvas3" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas3");
var ctx = c.getContext("2d");
var gradient = ctx.createRadialGradient(150, 75, 20, 150, 75, 100);
gradient.addColorStop(0, "red");
gradient.addColorStop(1, "white");
ctx.fillStyle = gradient;
ctx.fillRect(10, 10, 280, 130);
</script>

이 예제는 중심에서 바깥쪽으로 빨간색에서 흰색으로 변하는 방사형 그라데이션 효과를 만든다.

여러 색상으로 방사형 그라데이션

<canvas id="myCanvas4" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas4");
var ctx = c.getContext("2d");
var gradient = ctx.createRadialGradient(150, 75, 10, 150, 75, 100);
gradient.addColorStop(0, "yellow");
gradient.addColorStop(0.5, "green");
gradient.addColorStop(1, "blue");
ctx.fillStyle = gradient;
ctx.fillRect(10, 10, 280, 130);
</script>

이 예제는 노랑, 초록, 파랑 세 가지 색상이 부드럽게 전환되는 방사형 그라데이션을 적용한다.

그라데이션과 도형 결합

그라데이션은 텍스트, 원, 선 등 다양한 도형과 결합하여 사용할 수 있다.

그라데이션 텍스트

<canvas id="myCanvas5" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas5");
var ctx = c.getContext("2d");
var gradient = ctx.createLinearGradient(0, 0, 300, 0);
gradient.addColorStop(0, "magenta");
gradient.addColorStop(0.5, "blue");
gradient.addColorStop(1, "red");
ctx.font = "40px Arial";
ctx.fillStyle = gradient;
ctx.fillText("Gradient", 30, 90);
</script>

이 예제는 선형 그라데이션을 텍스트에 적용하여 다양한 색상 효과를 만들어준다.

그라데이션 원

<canvas id="myCanvas6" width="300" height="150" style="border:1px solid #d3d3d3;">
브라우저가 HTML5 Canvas를 지원하지 않습니다.
</canvas>
<script>
var c = document.getElementById("myCanvas6");
var ctx = c.getContext("2d");
var gradient = ctx.createRadialGradient(150, 75, 10, 150, 75, 70);
gradient.addColorStop(0, "white");
gradient.addColorStop(1, "blue");
ctx.beginPath();
ctx.arc(150, 75, 50, 0, 2 * Math.PI);
ctx.fillStyle = gradient;
ctx.fill();
</script>

이 예제는 중심이 흰색, 바깥이 파란색인 방사형 그라데이션으로 채워진 원을 그린다.

💡 그라데이션 팁:
• addColorStop의 offset 값은 0(시작)부터 1(끝) 사이에서 자유롭게 지정할 수 있다
• 그라데이션으로 다양한 도형과 텍스트에 색상 효과를 줄 수 있다
• 선형과 방사형 그라데이션을 조합하면 독창적인 그래픽을 만들 수 있다

Canvas 그라데이션 기능은 색상 전환 효과를 매우 쉽게 구현할 수 있다. 다양한 도형과 결합해 시각적 완성도를 높일 수 있다.

참고
Mingg`s Diary
밍구
공부 목적 블로그