웹 프론트엔드 H5 튜토리얼 html5 캔버스 그리기 튜토리얼(5) - canvas_html5 튜토리얼 기술에서 곡선을 그리는 원호 방법

html5 캔버스 그리기 튜토리얼(5) - canvas_html5 튜토리얼 기술에서 곡선을 그리는 원호 방법

May 16, 2016 pm 03:50 PM
canvas

이번 캔버스에 선 그리기 기사에서는 직선을 그리는 방법에 대해 이야기했습니다. 논리적으로 곡선 그리기에 관한 이 기사는 오래 전에 게시되었어야 했지만, 캔버스에 곡선을 그리는 것은 꽤 특별하기 때문에 저는 그렇게 하지 않았습니다. 아직 파악하지 못했으니 차근차근 시도해 보세요.
캔버스에서 곡선을 그릴 때 어려운 점 중 하나는 곡선에 대한 기능이 4가지뿐이라는 점이에요! 그들은 arc, arcTo,quadraticCurveTo 및 bezierCurveTo입니다. 가장 간단한 호 방법부터 시작하겠습니다.
호의 기능은 완전한 원일 수도 있고 원의 특정 호일 수도 있는 규칙적인 호를 그리는 것입니다. arc의 구문은 다음과 같습니다. 🎜>

context.arc(x, y, radius, startAngle, endAngle, anticlockwise)
매개변수를 설명하겠습니다.
arc(원의 중심 x, 원의 중심 y, 반지름, 시작 각도, 끝 각도, 시계 반대 방향 여부)

원호를 사용하여 완전한 원을 그리려면 어떻게 해야 하나요? 매개변수에 시작 각도와 끝 각도가 있다는 것을 모두가 알아차렸습니다. 시작 각도가 0이고 끝 각도가 360이라면 완벽한 원이 아닌가요?
정답! 그러나 여기서 각도는 "라디안"으로 표시됩니다(Flash의 경우에도 마찬가지). 완전한 원은 360도, 즉 2PI 라디안입니다. 그러므로 를 다음과 같이 작성합니다.


코드 복사


코드


ctx.arc(400,400,20,0,Math.PI*2) ctx.fill() ctx.Stroke(); >

lineTo와 마찬가지로 arc도 그리기 경로이므로 그래픽을 표시하려면 그 뒤에 있는 fill 또는 스트로크 메서드를 호출해야 합니다(그림에서는 빨간색 스트로크 스타일과 반투명 빨간색 채우기 스타일이 사용됨).
이제 각도가 90도인 1/4원을 그려보겠습니다. 앞서 언급했듯이 360도 각도는 2PI 라디안이므로 1도 각도는 2PI/360=PI/180 라디안이고 90도는 2PI/360*90=PI/2 라디안입니다. (다른 각도는 직접 계산하세요.) ).


코드 복사

코드는 다음과 같습니다.

ctx.arc(400,400, 20,0 ,Math.PI*2/4);




그림에서 호의 0도는 수학에서 일반적으로 사용되는 0도임을 알 수 있습니다. , 그러나 각도의 기본값은 The hour hand is open이며 이는 수학적 모델과 반대입니다(캔버스 좌표도 수학적 좌표와 반대이기 때문에 좌표와 관련이 있습니다).
그런데 반시계방향인지 판단하는 매개변수가 앞에 있지 않나요? true로 설정하면 어떨까요?
코드 복사


코드는 다음과 같습니다.

ctx.arc(400,400, 20,0 ,Math.PI*2/4,true);




각도가 시계 반대 방향으로 바뀌어 호가 360 -90이 되는 것을 볼 수 있습니다. =270도.
하지만! 모두가 주목해야 할 점은 시작점과 끝점의 계산 방법이 항상 0도에서 시작하여 시계 방향으로 확장된다는 것입니다. 시계 방향과 시계 반대 방향은 호가 그려지는 방향일 뿐입니다. 이렇게 하면 왔다 갔다 하는 혼란을 방지할 수 있을 뿐만 아니라 계산도 더 쉬워집니다. 그러나 시계 반대 방향을 유연하게 사용하는 것이 때로는 유용할 수 있습니다. 위 예에서 시작 각도는 모두 0입니다. 이제 90도와 같은 다른 시작 각도를 시도해 보겠습니다.


코드 복사

코드는 다음과 같습니다.


ctx.arc(400,400, 20,Math .PI*2/4,Math.PI*2 Math.PI)


시작점이 90도이고 끝점도 90도이면 결과는 아무것도 아닙니다. 그릴 수 있으므로 끝점을 두고 각도를 180도로 변경하여 최종적으로 아래와 같은 그래프가 얻어졌습니다.

질문: 0도가 아닌 시작점에서 완전한 원을 그리면 괜찮을까요? 물론 다음과 같이 호의 끝점을 360도 시작 각도로 설정하면 가능합니다.

코드 복사

코드는 다음과 같습니다:

ctx.arc(400,400,20,Math.PI*2/4,Math.PI*2 Math.PI*2/4) / /시작점은 90도, 끝점은 360 90도


그러나 이 접근 방식은 단지 문제를 찾는 것일 뿐 일반 사람들은 사용하지 않을 것입니다.
요약: Canvas의 호 방법은 양의 호만 그릴 수 있고 S자 같은 다른 이상한 호는 그릴 수 없습니다. 하지만 저는 S를 가장 좋아합니다. - 모양.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

캔버스를 사용하는 학교는 어디인가요? 캔버스를 사용하는 학교는 어디인가요? Aug 18, 2023 pm 05:59 PM

캔버스를 사용하는 학교로는 스탠포드대학교, MIT, 컬럼비아대학교, 캘리포니아대학교, 버클리대학교 등이 있습니다. 자세한 소개: 1. Stanford University는 Canvas를 주요 온라인 학습 플랫폼으로 사용합니다. Stanford University의 교사와 학생은 Canvas를 사용하여 강좌 내용을 관리 및 전달하고 온라인 토론, 과제 제출 및 시험과 같은 기능을 통해 학습합니다. Polytechnic Institute와 MIT도 Canvas를 온라인 학습 관리 시스템으로 사용하고 Canvas 플랫폼을 통해 강좌 관리를 수행합니다. 3. Columbia University 등

캔버스 화살표 플러그인이란 무엇입니까? 캔버스 화살표 플러그인이란 무엇입니까? Aug 21, 2023 pm 02:14 PM

캔버스 화살표 플러그인에는 다음이 포함됩니다. 1. 간단하고 사용하기 쉬운 API가 있으며 사용자 정의 화살표 효과를 만들 수 있는 Fabric.js 2. 화살표 그리기 기능을 제공하고 다양한 화살표를 만들 수 있는 Konva.js 스타일 3. 풍부한 그래픽 처리 기능을 제공하고 다양한 화살표 효과를 얻을 수 있는 Pixi.js 4. 화살표 스타일과 애니메이션을 쉽게 생성하고 제어할 수 있는 Two.js 5. 다양한 화살표 효과를 생성할 수 있는 Arrow.js 6. 대략적인 .js, 손으로 그린 ​​화살표 등을 만들 수 있습니다.

캔버스 시계의 세부 사항은 무엇입니까? 캔버스 시계의 세부 사항은 무엇입니까? Aug 21, 2023 pm 05:07 PM

캔버스 시계의 세부 사항에는 시계 모양, 눈금 표시, 디지털 시계, 시, 분 및 초침, 중심점, 애니메이션 효과, 기타 스타일 등이 포함됩니다. 자세한 소개: 1. 시계 모양, 캔버스를 사용하여 시계 모양으로 원형 다이얼을 그릴 수 있으며 다이얼의 크기, 색상, 테두리 및 기타 스타일을 설정할 수 있습니다. 2. 눈금선, 눈금선을 그립니다. 3. 디지털 시계, 다이얼에 디지털 시계를 그려서 현재 시간과 분을 표시할 수 있습니다. 4. 시침, 분침, 초침 등.

html2canvas에는 어떤 버전이 있나요? html2canvas에는 어떤 버전이 있나요? Aug 22, 2023 pm 05:58 PM

html2canvas 버전에는 html2canvas v0.x, html2canvas v1.x 등이 포함됩니다. 자세한 소개: 1. html2canvas v0.x는 html2canvas의 초기 버전입니다. 최신 안정 버전은 v0.5.0-alpha1입니다. 2. html2canvas v1.x는 html2canvas의 새 버전입니다.

uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법을 구현합니다. uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법을 구현합니다. Oct 18, 2023 am 10:42 AM

uniapp에서 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법에는 특정 코드 예제가 필요합니다. 1. 소개 모바일 장치의 인기로 인해 점점 더 많은 응용 프로그램이 모바일 단말기에 다양한 차트와 애니메이션 효과를 표시해야 합니다. Vue.js를 기반으로 하는 크로스 플랫폼 개발 프레임워크인 uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 기능을 제공합니다. 이 기사에서는 uniapp이 캔버스를 사용하여 차트 및 애니메이션 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 2. 캔버스

html2canvas는 어떤 스타일에 유효하지 않습니까? html2canvas는 어떤 스타일에 유효하지 않습니까? Nov 24, 2023 pm 03:25 PM

잘못된 스타일에는 CSS3 애니메이션 및 전환, CSS 필터 효과, CSS3 복잡한 그래픽 및 경로, 일부 CSS3 기능, 의사 요소 및 일부 CSS 기능, Z-색인, 배경 이미지 및 그라데이션 등이 포함됩니다. 자세한 소개: 1. CSS3 애니메이션 및 전환: html2canvas는 CSS3 애니메이션 및 전환 효과를 완전히 캡처하지 못할 수 있습니다. 최종 스타일을 캡처하려고 시도하지만 변환 과정에서 이러한 애니메이션과 전환이 손실될 수 있습니다. 2. CSS 필터 효과: 흐림 및 그림자와 같은 필터는 변환 과정에서 유지되지 않을 수 있습니다.

중국 교육분야 캔버스의 발전 동향과 향후 전망 중국 교육분야 캔버스의 발전 동향과 향후 전망 Jan 17, 2024 am 10:22 AM

과학 기술의 급속한 발전과 교육 분야에서 정보 기술의 광범위한 적용으로 인해 세계 최고의 온라인 학습 관리 시스템인 Canvas가 중국 교육 산업에서 점차 떠오르고 있습니다. Canvas의 출현은 중국의 교육 및 교수법 개혁에 대한 새로운 가능성을 제공합니다. 이 기사에서는 중국 교육 부문에서 Canvas의 발전 동향과 전망을 살펴보겠습니다. 우선, 중국 교육 부문에서 Canvas의 발전 추세 중 하나는 심층적 통합입니다. 클라우드 컴퓨팅, 빅 데이터 및 인공 지능의 급속한 발전으로 Canvas는 점점 더 발전할 것입니다.

tkinter 캔버스에는 어떤 속성이 있습니까? tkinter 캔버스에는 어떤 속성이 있습니까? Aug 21, 2023 pm 05:46 PM

tkinter 캔버스 속성에는 bg, bd, 릴리프, 너비, 높이, 커서, 강조 배경, 강조 색상, 강조 두께, 삽입 배경, 삽입 너비, 선택 배경, 선택 전경, xscrollcommand 속성 등이 포함됩니다. 자세한 소개

See all articles