>  기사  >  웹 프론트엔드  >  html5 캔버스의 일반적인 속성 메서드(소개)

html5 캔버스의 일반적인 속성 메서드(소개)

青灯夜游
青灯夜游원래의
2018-09-20 17:57:032666검색

이 장에서는 html5 캔버스의 일반적인 속성 방법(소개)을 소개합니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.

먼저 에서는 5ba626b379994d53f7acf72a64f9b697c2caaf3fc160dd2513ce82f021917f8b 태그 를 소개합니다.

두 번째 단계는 캔버스의 2D 환경을 가져오는 것입니다(var ctx = canvasDom.getContext('2d')).

이제 뭔가 그려보고 싶을 수도 있습니다. 무언가를 그리기 전에 다음과 같은 사항을 결정해야 합니다.

 ctx.fillStyle: 채우기 색상을 결정하는 데 사용되는 속성입니다. (채우기를 사용하면 모두 채우기와 관련됩니다)
ctx.StrokeStyle: "펜 경로"(선과 마찬가지로)를 결정하는 데 사용되는 속성입니다. (획에는 모두 추적과 관련이 있습니다)
ctx.shadow++: 그려진 그래픽의 그림자를 설정하는 속성이 4개 있습니다(shadowColor, ShadowBlur, ShadowOffsetX, ShadowOffsetY). 저는 자주 사용하지 않습니다. 생략하겠습니다.
ctx.lineWidth: 선 스타일을 설정하는 4가지 속성(lineCap, lineJoin, lineWidth, miterLimit) 중 가장 일반적으로 사용됩니다. 선 너비를 설정하며 값은 px로 된 문자열입니다.
ctx.font: 텍스트()의 글꼴 크기와 글꼴 스타일을 설정합니다. 값은 "30px" 또는 "30px Microsoft yahei"일 수 있습니다. 동시에 ctx.textAlign 및 ctx.baseline과 협력하여 정렬 위치와 기준선 위치를 설정합니다. 그런 다음 ctx.filltext() 또는 ctx.StrokeText()를 통해 텍스트를 그리고 ctx.measureText()는 너비 및 높이와 같은 텍스트 정보가 포함된 객체를 반환합니다.

위의 기본 속성을 이해한 후 무언가를 그릴 수 있습니다.

무언가를 표시하려면 먼저 경로를 만드는 과정이 될 것입니다(경로가 보이지 않음). , 그런 다음 ctx.fill() 또는 ctx.strok을 통해 경로를 채우거나 추적합니다.

ctx.direct(x,y,width,height) 또는 ctx.arc(x,y,radius,startAngle,endAngle,anticolorwise)를 사용하여 먼저 경로를 만든 다음 채우거나 채울 수 있습니다. 뇌졸중 .

물론 직사각형에는 보이는 정사각형을 직접 생성하기 위한 ctx.fillRect() 및 ctx.strokRect()가 있습니다. (Circle에는 이 두 가지 방법이 없습니다)

마지막으로 상자의 모든 픽셀을 지우는 데 사용되는 칠판 지우개인 ctx.clearRect(x,y,weight,height)를 소개하겠습니다. .

이전 경로가 방해받지 않도록 하려면 ctx.beginPath()를 사용하여 각 그리기 전에 이전 경로를 지울 수 있습니다.

위는 캔버스의 기본적인 사용법인데, 몇 가지 고급(용)(부)점(상)에 대해 이야기해 보겠습니다.

직사각형 스타일의 그라데이션 채우기:

var grd = ctx.createLinearGradient(x0,y0,x1,y1);
grd.addColorStop(0,"black");
grd.addColorStop(1,"white");
ctx.fillstyle = grd;
ctx.fillRect(x,y,w,h);

이 여행은 그라데이션 스타일을 미리 정의하는 것과 같습니다(채우거나 그릴 수 있음) ), 채우기 또는 스타일을 설정한 후 추적합니다.

방사형 스타일을 설정하기 위해 addColorStop을 사용하는 createRadialGradient()도 있습니다.

미디어 채우기(사진, 비디오, 기타 캔버스):  

var img = imgDom;
var pat = ctx.createPattern(img,"repeat");

그러면 이 pat를 ctx.++Style에 부여할 수 있습니다. 따라서 선을 채우거나 그립니다.

패턴에는 반복(기본값), 반복-x, 반복-y, 반복 없음의 네 가지 유형이 있습니다.

사용자 정의 경로:

경로의 시작점을 이동하려면 ctx.moveTo(x,y)를 사용하세요. (x, y)를 사용한 다음 lineTo(x,y)를 사용하여 경로를 가져오고 이를 표시할 선을 그립니다.

물론 채우고 싶지만 경로가 닫히지 않을 수 있는 경우 ctx.closePath()를 사용하여 경로를 닫은 다음 채울 수 있습니다.

캔버스 자르기:

현재 닫힌 경로에 따라 캔버스를 자르려면 ctx.clip()을 사용하세요. 잘라낸 캔버스 부분은 할 수 없습니다. 움직이는.

ctx.save()를 통해 현재 영역을 저장한 후 ctx.restore()를 통해 복원할 수 있습니다.

호 그리기:

두 점을 통해 ctx.arcTo(x0,y0,x1,y1,radius)를 통해 호를 그립니다. 경로를 얻기 위해 반지름으로 호를 결정한 다음 필요에 따라 채우거나 추적합니다.

점이 경로 내에 있는지 확인합니다.

ctx.isPointInPath()는 말할 것도 없이 부울 값을 반환합니다.

Bezier라는 일종의 곡선이 있습니다.

먼저 ctx.moveTo()를 사용하여 시작점으로 이동합니다.

ctx.quadraticCurveTo(c1x,c1y,edx,edy); 시작점과 제어점 및 끝점을 사용하는 베지어 곡선

ctx.beizierCurveTo(c1x, c1y ,c2x,c2y,edx,edy) 두 개의 제어점을 사용하여 그려진 베지어 곡선.

그래픽 변환:

 ctx.scale(w,h);Zoom in w>1은 너비, h를 확대하는 것을 의미합니다. 높이에 있습니다.

 ctx.rotate(r); r은 라디안 단위입니다(예: 20*Math.PI/180). 시계 방향으로.

 ctx.translate(x,y)는 캔버스에서 (0,0)의 위치를 ​​설정하고, (x,y)는 (0,0)의 현재 위치입니다.

  ctx.transform(a,b,c,d,e,f)는 각각 수평 스케일링, 수평 기울기, 수직 기울기, 수직 스케일링, 수평 변위 및 수직 변위입니다. 이 속성은 중첩되어 다음 그래픽에 적용됩니다.

  ctx.setTransform(a,b,c,d,e,f); 위와 동일하며 이 속성은 변환을 재정의하고 다음 그래픽에 유효합니다.

drawImage():

ctx.drawImage(dom,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) ;dom 외에도 최대 8개의 매개변수가 전달될 수 있으며, 2개의 매개변수는 이미지 위치(원본 크기)에 전달되고, 4개의 매개변수는 크기에 따른 이미지 위치에 전달되고, 8개의 매개변수는 절단 후 이미지 위치에 전달됩니다. (각각: 절단 시작 x, y, 절단 크기 w, h, 위치 지정 x, y, 크기 w, h).

 globalAipha 속성: 전역 투명성을 설정합니다. (이미 칠해진 것은 영향을 받지 않습니다.)

 GlobalCompositeOperation 속성은 "source-over" 및 "destination-over"를 포함하여 이전 및 다음 중첩 영역의 스택 순서를 설정합니다. 어느 것이 위에 있고 어느 것이 아래에 있는지를 설정합니다.

위 내용은 html5 캔버스의 일반적인 속성 메서드(소개)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.