제가 쓴 책/HTML5, CSS3 and JavaScript

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

edupicker(체르니) 2013. 8. 7. 00:22

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에 대한 부분을 그대로를 공개하는 것으로 본 저작물에 대한 모든 권리는 본인(원철연)에서 있음을 알립니다.
개인적인 학습 목적으로 사용을 허용하며 온오프라인의 베포나 펌상업적인 용도의 사용은 삼가해주시기 바랍니다. 끝으로 학교나 비영리 단체에서의 경우 본 저작물을 비상업적인 용도로 활용하고자 할 경우 연락처를 비밀댓글로 남겨주시면 연락드리겠습니다.