HTML5 강좌 10강 - HTML5 태그 - canvas 원그리기

 

이번 강좌에서는 canvas arc() 이용하여 원을 만들어보겠습니다.

원그리기는 좀 복잡합니다.

수학적인 부분이 어느정도 있어요.

학창시절 수학을 무지 싫어했던 터라..

공식만 보면 정신이 없는데요.

원그리기는 공식이 조금 들어갑니다.

먼저 원호를 그려보겠습니다.

 

 

01.jpg

 

 

 

그림을 보면 이해가 되시나요?

설명을 조금 덧붙이겠습니다.

먼저 항상 그래왔듯이 시작점을 지정합니다.

그리고 arc()를 이용하여 반지름 및 각도를 설정합니다.

그리고 그리는 방향도 설정해줍니다.

코딩을 통해 테스트를 해보죠.

 

02.jpg

 

 

위와 같이 코딩을 하고 실행을 해보겠습니다.

 

03.jpg

 

 

사실 공식은 외워야 하는 부분입니다.

우리는 공식을 외우고 각도와 반지름 설정값을 변경하면서 테스트를 하면 되겠네요.

이번에는 원을 그려보겠습니다.

원그리기는 원호보다 좀 더 간단합니다.

 

04.jpg

 

 

그림을 보면 알 수 있겠지만

시작각도와 종료각도가 항상 일정합니다.

무조건 한바퀴를 돌려서 원을 만드니 그러하겠죠.

좌표와 반지름 값만 설정을 해주면 되겠네요.

 

05.jpg

 

 

설정대로 원이 그려지네요.

이번에는 부채꼴을 만들어 보겠습니다.

방법은 아래와 같습니다.

선을 하나 긋고 선에 이어 반호를 그린 후에 선을 연결시켜 주면 되겠죠~

 

06.jpg

 

 

위와 같이 코딩을 하고 테스트를 해보겠습니다.

 

07.jpg

 

 

부채꼴 모양이 만들어 졌네요.

false 값을 true 로 바꾸고 테스트를 해보세요 :)

 

또한 직선과 접하는 원호도 그릴 수 있습니다.

moveTo() 메소드와 arcTo() 메소드를 이용하면 가능합니다.

arcTo()의 속성값 설정은 다음과 같습니다.

context.arcTo(보조점x, 보조점y, 종료점x, 종료점y, 반지름)

그림을 보면 이해하기 편하실 겁니다.

 


08.jpg

 

 

 

 

예제를 통해 테스트를 해보겠습니다.

 

09.jpg

 

 

위와 같이 코딩을 하고 결과를 보겠습니다.

 

10.jpg

 

 

결과를 보면 조금 이해하기 힘들 수도 있어 보조선을 그려보겠습니다.

 

11.jpg

 

 

보조선을 보면 처음에 봤던 그림처럼 이해가 되실 겁니다.

 

 

(예제는 첨부파일에서 받을 수 있습니다.)

 

10.zip

번호 제목 글쓴이 날짜 조회 수
128 Web Speech API Example (HTML5 STT & TTS) file 황제낙엽 2025.04.14 731
127 모바일과 데스크톱을 포괄하는 사용자의 터치 이벤트(onPointerTap) 황제낙엽 2025.04.09 648
126 Web RTC 에 관하여 황제낙엽 2024.11.20 626
125 div와 span의 차이점 (from Bing) 황제낙엽 2023.06.16 685
124 flexbox (flexible box layout) 황제낙엽 2023.02.27 641
123 characters from ISO 8859-1 황제낙엽 2020.11.10 36946
122 HTML FRAMESET 태그 예제 황제낙엽 2020.11.06 718
121 스마트 기기에서 여러 단말기의 해상도에 대응하기 위해 사용하는 HTML viewport meta tag 황제낙엽 2020.11.06 644
120 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1762
119 서버의 이미지나 txt 파일을 웹브라우저에서 다운로드하기 황제낙엽 2019.05.13 867
118 When to encode space to plus (+) or %20? (application/x-www-form-urlencoded) 황제낙엽 2019.04.15 917
117 HTTP/2 소개 황제낙엽 2018.10.12 693
116 글자, 문자, 텍스트, 글꼴, 서체, 폰트와 관련한 속성들 / font-size , 크기 단위(em, px, pt, rem), 절대 단위, 상대 단위 황제낙엽 2018.04.18 842
115 Pragma와 Cache-Control 황제낙엽 2018.03.28 845
114 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 944
113 HTTP 요청 헤더 III - If-Match, If-Modified-Since, If-None-Match file 황제낙엽 2018.03.27 726
112 재미난 로그인 페이지 만들기 file 황제낙엽 2018.03.26 1592
111 HTTP Cache-Control 요청 지시어 황제낙엽 2018.03.09 713
110 내 웹사이트의 속도를 빠르게! file 황제낙엽 2018.03.07 859
109 성능을 위한 초간단 HTTP 304 Not Modified 구현 방법 file 황제낙엽 2018.03.07 816