Canvas 입문 - 원 그리기 편
그리기 절차
이번에는 원을 그려보고 싶습니다.
①HTML,JS를 준비
기본적으로는 Canvas 입문 - 선·직사각형 묘화편 에서 사용한 것과 같은 것을 사용합니다.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
const canvas = document.getElementById('canvas'); // canvas要素への参照の取得
const ctx = canvas.getContext('2d'); // コンテキストの取得
</script>
</body>
</html>
②묘화용 메소드의 추기
원을 그리는 방법은 다음과 같습니다.
어디까지나 궤적이므로, 이 후에 fill()로 채우거나 stroke()로 선을 그립니다.
arc(x, y, radius, startAngle, endAngle, anticlockwise);
인수
내용
x
원의 중심점의 x 좌표
y
원의 중심점의 y 좌표
radius
반경
startAngle
원의 시작 각도
endAngle
원의 끝 각도
anticlockwise(true or false)
true로 시계 방향, false로 반시계 방향
아래와 같은 문서에 상세가 실려 있으므로, 함께 확인해 주세요.
> arc() 메서드
※각도에 대해서, 1주는 2π, 반원은 π입니다.
예 1) 원 그리기
JS의 내용을 발췌합니다.
const canvas = document.getElementById('canvas'); // canvas要素への参照の取得
const ctx = canvas.getContext('2d'); // コンテキストの取得
/* コンテキスト設定 */
ctx.strokeStyle = '#333'; // 塗りつぶしは暗めの色
ctx.fillStyle = '#f00'; // 線は赤色
ctx.lineWidth = 5; // 線の幅は5px
/* 円の描画 */
ctx.beginPath(); // パスの初期化
ctx.arc(100, 50, 30, 0, 2 * Math.PI); // (100, 50)の位置に半径30pxの円
ctx.closePath(); // パスを閉じる
ctx.fill(); // 軌跡の範囲を塗りつぶす
예 2) 부채꼴 그리기
단순히 arc의 종료 각도를 아래와 같이 변경하면
ctx.arc(100, 50, 30, 0, Math.PI / 6); // (100, 50)の位置に半径30pxの円、終了角度は「π = Math.PI(180度の半円)」
↓와 같은 잘 모르는 그림이 출력됩니다.
선형으로 그릴 때는 시작점을 그릴 필요가 있으므로 다음과 같이 "moveTo 메서드"에서 원의 중심을 지정합니다.
const canvas = document.getElementById('canvas'); // canvas要素への参照の取得
const ctx = canvas.getContext('2d'); // コンテキストの取得
/* コンテキスト設定 */
ctx.strokeStyle = '#333'; // 塗りつぶしは暗めの色
ctx.fillStyle = '#f00'; // 線は赤色
ctx.lineWidth = 5; // 線の幅は5px
/* 円の描画 */
ctx.beginPath(); // パスの初期化
ctx.moveTo(100, 50); // 円の中心に筆をおろす
ctx.arc(100, 50, 30, 0, Math.PI / 6); // (100, 50)の位置に半径30pxの円
ctx.closePath(); // パスを閉じる
ctx.fill(); // 軌跡の範囲を塗りつぶす
그러면 ↓과 같이 부채형이 출력되었습니다.
예 3) 부채꼴, 반시계 방향 그리기
시작 각도와 종료 각도는 동일하지만 반시계 방향으로 인해 그림의 모양이 "예 2"의 반전된 상태가 됩니다.
const canvas = document.getElementById('canvas'); // canvas要素への参照の取得
const ctx = canvas.getContext('2d'); // コンテキストの取得
/* コンテキスト設定 */
ctx.strokeStyle = '#333'; // 塗りつぶしは暗めの色
ctx.fillStyle = '#f00'; // 線は赤色
ctx.lineWidth = 5; // 線の幅は5px
/* 円の描画 */
ctx.beginPath(); // パスの初期化
ctx.moveTo(100, 50); // 円の中心に筆をおろす
ctx.arc(100, 50, 30, 0, Math.PI / 6, true); // (100, 50)の位置に半径30pxの円
ctx.closePath(); // パスを閉じる
ctx.fill(); // 軌跡の範囲を塗りつぶす
Reference
이 문제에 관하여(Canvas 입문 - 원 그리기 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yarimo/items/14e545de8157a66d5e99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)