HTML5 Canvas의 기본 개념 설명
html5, 개발자라면 누구나 익숙할 것이므로 소개가 필요하지 않습니다. HTML5는 "신흥" 웹 기술 표준입니다. 현재 IE8 이하를 제외하고 거의 모든 주요 브라우저(FireFox, Chrome, Opera, Safari, IE9)가 HTML5를 지원하기 시작했습니다. 또한, 모바일 브라우저 시장에서는 많은 모바일 브라우저가 'html5 지원 기능 및 성능'을 두고 군비 경쟁을 벌이기도 했습니다. 혁신적인 웹 기술 표준인 html은 많은 브라우저 제조업체나 조직의 강력한 지원과 결합되어 html5가 미래에 웹 기술의 리더가 될 것으로 예상됩니다.
'신흥'이라고 불리는 html5는 사실 전혀 새로운 것이 아닙니다. 결국 html5의 첫 번째 공식 초안은 2008년 초에 발표되었습니다. 2008년부터 계산하면 꽤 오랜 시간이 흘렀습니다. 그러나 지금까지 대부분의 개발자에게는 여전히 "천둥은 치고 비는 적습니다"라고 생각합니다. HTML5에 대해 듣는 사람은 많지만 실제로 HTML5를 사용하는 사람은 거의 없습니다.
우리 모두 알고 있듯이 html5에는 많은 새로운 기능이 추가되었습니다. html5의 많은 기능 중에서 Canvas는 가장 눈길을 끄는 새로운 기능 중 하나로 간주되어야 합니다. 우리는 html5의 Canvas 객체를 사용하여 브라우저 웹 페이지에 직접 그래픽을 그립니다. 이는 브라우저가 Flash와 같은 타사 플러그인 없이 웹 페이지에 직접 그래픽이나 애니메이션을 표시할 수 있음을 의미합니다.
이제 html5 초보자를 위해 html5 Canvas를 사용하여 기본적인 그래픽을 그리는 방법을 소개하겠습니다.
먼저 다음과 같은 기본 HTML 코드를 준비해야 합니다.
위 코드는 html5 페이지의 기본 코드 템플릿입니다. 그 중 코드의 첫 번째 줄은 문서 유형 태그 명령으로, 이는 html5 페이지의 표준 문서 유형 명령이기도 합니다. 이는 브라우저에 "이것은 html5 페이지입니다. 구문 분석하고 html5 웹페이지 표준에 따라 표시합니다." 이 페이지". 코드의 네 번째 줄은 브라우저에 "이 html5 페이지의 문자 인코딩은 UTF-8입니다"라고 알리는 데 사용됩니다. 이는 html5의 문자 인코딩을 작성하는 표준 방법이기도 합니다. 웹 페이지. 이는 이전 HTML 문자 인코딩 지침과 다릅니다.
이제 위의 코드가 포함된 html 파일에 Canvas가 그래픽을 그리는 예를 설명하겠습니다. 먼저 위 HTML 코드의 본문 부분에 다음 캔버스 태그를 추가합니다.
이때, HTML5를 지원하는 브라우저를 사용하여 페이지를 열면 다음과 같은 내용이 보입니다.
HTML5에서 캔버스 태그 자체에는 아무런 동작이 없으며 페이지에서 지정된 크기의 공백만 차지합니다. 캔버스 태그는 빈 캔버스와 동일하며 JavaScript에서 제공하는 캔버스 API를 사용하여 이 캔버스에 원하는 그래픽을 그리는 해당 코드를 작성해야 합니다.
참고: 캔버스 태그의 텍스트 콘텐츠는 HTML5를 지원하지 않는 브라우저에 표시됩니다. 위 HTML 코드에서 볼 수 있듯이, 귀하의 브라우저가 HTML5의 캔버스 태그를 지원하지 않는 경우, 캔버스 태그에 "귀하의 브라우저는 캔버스 태그를 지원하지 않습니다."라는 문구가 표시됩니다.
'화가'로서 우리는 먼저 JavaScript의 Canvas 객체인 손에 있는 브러시와 관련 내용을 숙지해야 합니다.
HTML5에서 캔버스 태그는 Canvas 개체에 해당합니다. JavaScript의 document.getElementById()와 같은 일반 함수를 사용하여 개체를 얻을 수 있습니다. JavaScript에서는 Canvas 객체를 직접 조작하지 않고 Canvas 객체를 통해 해당 그래픽 그리기 컨텍스트 객체 CanvasRenderingContext2D를 얻은 다음 CanvasRenderingContext2D 객체와 함께 제공되는 많은 그래픽 그리기 함수를 사용하여 그리는 점에 주목할 가치가 있습니다.
각 캔버스가 브러시에 해당하는 것과 같습니다. 캔버스에 그리려면 먼저 해당 브러시를 가져온 다음 이 브러시를 사용하여 캔버스에 그려야 합니다. CanvasRenderingContext2D 개체는 이 브러시와 동일합니다. 이제 JavaScript에서 이 브러시를 사용해 보겠습니다.
위 코드에서 볼 수 있듯이 Canvas 개체의 getContext() 메서드를 사용하여 CanvasRenderingContext2D 개체를 얻을 수 있습니다. 좀 더 세심한 독자라면 알아차렸을 것입니다. getContext() 메소드는 문자열(2d)을 전달해야 하며, 얻은 CanvasRenderingContext2D 객체의 이름에도 2D가 포함되어 있다는 점을 알아차렸을 것입니다. 현재 html5는 2D 그리기만 지원하지만 향후 html5에서는 3D나 다른 형태의 그리기도 지원될 수 있기 때문입니다. 이때 CanvasRenderingContext3D 객체를 얻고 3D 그래픽을 그리기 위해 getContext("3d")를 사용해야 할 수도 있습니다.
html5 캔버스를 사용하여 선(직선, 다중선 등)을 그립니다.
html5 캔버스를 사용하여 직선을 그리는 데 필요한 CanvasRenderingContext2D 개체의 주요 속성 및 메서드("() " 방법)은 다음과 같습니다.
属性或方法 | 基本描述 |
---|---|
strokeStyle | 用于设置画笔绘制路径的颜色、渐变和模式。该属性的值可以是一个表示css颜色值的字符串。如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象 |
globalAlpha | 定义绘制内容的透明度,取值在0.0(完全透明)和1.0(完全不透明)之间,默认值为1.0。 |
lineWidth | 定义绘制线条的宽度。默认值是1.0,并且这个属性必须大于0.0。较宽的线条在路径上居中,每边各有线条宽的一半。 |
lineCap | 指定线条两端的线帽如何绘制。合法的值是 "butt"、"round"和"square"。默认值是"butt"。 |
beginPath() | 开始一个新的绘制路径。每次绘制新的路径之前记得调用该方法。它将重置内存中现有的路径。 |
moveTo(int x, int y) | 移动画笔到指定的坐标点(x,y) ,该点就是新的子路径的起始点 |
lineTo(int x, int y) | 使用直线连接当前端点和指定的坐标点(x,y)
|
stroke(int x, int y) | 沿着绘制路径的坐标点顺序绘制直线 |
closePath() | 如果当前的绘制路径是打开的,则关闭掉该绘制路径。此外,调用该方法时,它会尝试用直线连接当前端点与起始端点来关闭路径,但如果图形已经关闭(比如先调用了stroke())或者只有一个点,它会什么都不做。 |
캔버스를 사용하여 기본 직선을 그립니다
이제 캔버스를 사용하여 가장 기본적인 직선을 그립니다.