Canvas tutorial #3 (Curves)

2020. 4. 6. 19:49·개발/Canvas
728x90

※ 이 글은 예전 블로그에서 퍼왔으며 2020.3.2.에 작성된 글입니다.

※ 이 글은 해당사이트를 번역한 것입니다.


arc(호, 원호)

원의 호를 그리기 위해선 arc( )를 사용할 수 있다.

호는 중심점, 반지름, starting angle, ending angle, 회전방향(시계방향, 반시계방향)으로 정의된다.

호는 lineWidth, strokeStyle, lineCap속성을 가질 수 있다.

​

호는 가상의 원의 원주의 한 부분에 지나지 않는다. 이 가상의 원은 x, y, radius 로 정의할 수 있다.

​

그런 다음 startAngle과 endAngle로 정의된 가상의 원의 둘레를 따라 두개의 점으로 호를 정의 할 수 있다.

​

두 각들은 반지름으로 정의되며, 원의 중심에서 우리가 생성하려는 호의 끝을 교차하는 가상의 선을 생성한다.

​

호의 마지막 속성은 두 점사이의 호 경로(회전방향)을 정의하는 antiClockwise입니다. 특별한 명시가 없으면 이 속성은 default 값으로 false를 가지게 되고 호를 시계 방향으로 그린다.

context.arc(x, y, radius, startAngle, endAngle, counterClockwise);
/*
x: x좌표
y: y좌표
startAngle: 시작점 각도 값
endAngle: 끝점 각도 값
counterClockwise: 회전방향
*/

Quadratic Curve(이차 곡선)

이차 곡선을 그리기 위해선 quadraticCurveTo( )를 사용할 수 있다.

이차 곡선은 context point, control point, ending point로 정의된다.

이차 곡선은 lineWidth나 strokeStyle, lineCap 속성을 지닐 수 있다.

control point는 이차 곡선의 곡률을 context point와 ending point에 연결된 두 개의 가상 접선에 따라 정의한다.

​

control point가 context point와 ending point로 부터 멀어질수록 더 선명한 곡선이 생성되고 가까워질수록 더 넓은 곡선이 만들어 진다.

context.moveTo(x,y); // context point(시작점) 설정
context.quadraticCurveTo(cpx, cpy, x, y);
/*
cpx, cpy: control point 설정
x, y: ending point 설정
*/

Bezier Curve(베지에 곡선)

베지에 곡선을 그리기 위해선 bezierCurveTo( )를 사용할 수 있다.

베지에 곡선은 context point, 두 개의 control point, ending point으로 정의된다.

이차 곡선과는 달리 베지에 곡선은 하나가 아닌 두 개의 기준점으로 정의되므로 더 복잡한 곡성을 작성할 수 있다.

베지에 곡선은 lineWidth, strokeStyle, lineCap속성을 가질 수 있다.

베지에 곡선은 current context point와 두 개의 control points, ending point​​로 정의된다.

곡선의 첫번째 부분은 context point와 control point 1에 의해 정의된 가상선과 접선한다.

곡선의 두번째 부분은 control point 2와 ending point에 의해 정의된 가상선과 접선한다.

context.moveTo(x, y); // context point(시작점) 설정
context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
/*
cp1x, cp1y: control point 1 설정
cp2x, cp2y: control point 2 설정
x, y: ending point 설정
*/

+ 참고하면 좋은 글들

 

중학생도 알 수 있는 베지에 곡선(Bezier Curves)

이 문서는 일본어 문서 「中学生でもわかるベジェ曲線」을 번역한 것으로 곡선을 그리거나 애니메이션 처리에 근간이 되는 베지에 곡선(Bezier Curves)의 원리에 관해서 쉽고 간단하게 소개합니다.

blog.coderifleman.com

 

 

프런트엔드 엔지니어를 위한 베지에 곡선(Bezier Curves) - 1편

이 문서는 프런트개발에 있어서 유용하게 사용되는 베지에 곡선(Bezier Curves)의 원리를 수학적으로 자세히 소개하는 글의 첫 번째 편입니다.

blog.coderifleman.com

 

저작자표시 (새창열림)

'개발 > Canvas' 카테고리의 다른 글

Canvas tutorial #6 (Fill Styles)  (0) 2020.04.06
Canvas tutorial #5 (Shapes)  (0) 2020.04.06
Canvas tutorial #4 (Paths)  (0) 2020.04.06
Canvas tutorial #2 (Lines)  (0) 2020.04.06
Canvas tutorial #1  (1) 2020.04.06
'개발/Canvas' 카테고리의 다른 글
  • Canvas tutorial #5 (Shapes)
  • Canvas tutorial #4 (Paths)
  • Canvas tutorial #2 (Lines)
  • Canvas tutorial #1
기짜낭
기짜낭
생각이 많지만, 지금 내가 해야할 것을 하자.
  • 기짜낭
    So tired
    기짜낭
    • 분류 전체보기 (203) N
      • 개발 (13)
        • Javascript (19)
        • Typescript (5)
        • Canvas (8)
        • React (13)
        • C (3)
      • 활동 (63)
        • 개인 프로젝트 (33)
        • 나눔 서포터즈 3기 (9)
        • 멋쟁이 사자처럼 (7)
        • 0&1 C++ 자료구조 스터디 (0)
        • 제 9회 창업 아이디어톤 (3)
        • Poom (ZeroWasteShop) (3)
        • 해커톤 (2)
        • 우테코 프리코스 7기 (6)
      • 알고리즘 (27)
        • 알고리즘 정리 (5)
        • 백준 (18)
        • 프로그래머스 (4)
      • 강연 (7)
      • 독서 (19)
      • 회고 & 생각 (17) N
        • 연간회고 (5) N
      • 기타 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • ※ 예전 블로그
  • 인기 글

  • 태그

    react
    타입스크립트
    한양대학교
    알고리즘
    개발자
    개발
    프로젝트
    ES6
    개념
    Javascript
    canvas
    독후감
    에리카
    HTML
    3기
    대학
    tutorial
    Erica
    프로그래밍
    1주 1권
    프론트엔드
    HTML5
    군대
    TypeScript
    CSS
    1주에 1권씩
    디자인
    우테코
    독서
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
기짜낭
Canvas tutorial #3 (Curves)
상단으로

티스토리툴바