본문 바로가기
제가 쓴 책/HTML5, CSS3 and JavaScript

5.3 quadraticCurveTo() 메서드를 이용한 2차 곡선 그리기

by edupicker(체르니) 2013. 8. 7.

5.3 quadraticCurveTo() 메서드를 이용한 2차 곡선 그리기


quadraticCurveTo(cpx, cpy, x, y) 메서드는 2차 곡선을 그리는데 사용하는 메서드로 각각의 입력 파라미터에 대해서 보면 (cpx, cpy)는 조절점 역할을 하고 (x, y)는 끝 점을 나타냅니다.



위와 같이 조절점(cpx, cpy)를 기준으로 끝점이 (x, y) 2차원 곡선 형태의 베지어 곡선(Bezier Curve)를 그리게 됩니다. 2차원 곡선 형태의 베지어 곡선에 대한 계산식이 궁금한 분들은 위키파디아(“http://en.wikipedia.org/”)에서 Bézier curve로 검색해보면 나오는데 수학적으로 복잡한 부분이므로 이 책에서는 설명을 생략합니다.
이제 “basic.html” 파일을 메모장을 이용하여 연 후 “// canvas 그릴 선이나 도형 작성 아래에 다음과 같이 코드를 작성해봅니다
.


      // canvas에 그릴 선이나 도형 작성

      context.beginPath();

      context.moveTo(0, 100);

      context.quadraticCurveTo(50, 0, 100, 100);

      context.lineWidth = 5;

      context.strokeStyle = "red";

      context.stroke();

위와 같이 작성한 후 다른 이름으로 저장을 이용하여 “quadraticCurveToEx.html”로 저장합니다. 그 다음 IE9를 통해서 열어보면 다음과 같이 나타납니다.




위 코드에서 처음 시작점을 (0, 100)이 아닌 (20, 120)으로 다음과 같이 변경하고 저장합니다.

     context.moveTo(20, 120);

브라우저를 통해 보면 방금 전과는 다른 형태의 곡선이 나타나게 됩니다.




- 본 저작물은 본인이 2011년 상반기부터 2012년 여름 즈음까지 도서 출판을 목적으로 약 470 페이지(A4, 폰트 10)으로 작성한 원본 중 Canvas에 대한 부분을 그대로를 공개하는 것으로 본 저작물에 대한 모든 권리는 본인(원철연)에서 있음을 알립니다.
개인적인 학습 목적으로 사용을 허용하며 온오프라인의 베포나 펌상업적인 용도의 사용은 삼가해주시기 바랍니다. 끝으로 학교나 비영리 단체에서의 경우 본 저작물을 비상업적인 용도로 활용하고자 할 경우 연락처를 비밀댓글로 남겨주시면 연락드리겠습니다.