HTML5 canvas 初级入门教程

合集下载

使用HTML5Canvas绘制直线或折线等线条的方法讲解

使用HTML5Canvas绘制直线或折线等线条的方法讲解

使⽤HTML5Canvas绘制直线或折线等线条的⽅法讲解HTML5 Canvas基本概念讲解html5,这个应该就不需要多作介绍了,只要是开发⼈员应该都不会陌⽣。

html5是「新兴」的⽹页技术标准,⽬前,除IE8及其以下版本的IE浏览器之外,⼏乎所有主流浏览器(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基础代码:XML/HTML Code复制内容到剪贴板1. <!DOCTYPE html>2. <html>3. <head>4. <meta charset="UTF-8">5. <title>HTML5 Canvas⼊门⽰例</title>6. </head>7. <body>8.9. </body>10. </html>上述代码是⼀个html5页⾯的基本代码模板。

HTML5Canvas基本绘制线条教程

HTML5Canvas基本绘制线条教程

HTML5Canvas基本绘制线条教程HTML5 Canvas基本绘制线条教程怎么画线条?和现实中画画差不多:1.移动画笔,使画笔移动至绘画的开始处2.确定第一笔的停止点3.规划好之后,选择画笔(包括画笔的粗细和颜色等)4.确定绘制因为Canvas是基于状态的绘制(很重要,后面会解释),所以前面几步都是在确定状态,最后一步才会具体绘制。

1.移动画笔(moveT o())之前我们获得了画笔context,所以以此为例,给出改方法的使用实例——context.moveTo(100,100)。

这句代码的意思是移动画笔至(100,100)这个点(单位是px)。

记住,这里是以canvas画布的左上角为笛卡尔坐标系的原点,且y轴的正方向向下,x轴的正方向向右。

2.笔画停点(lineT o())同理,context.lineTo(600,600)。

这句的意思是从上一笔的停止点绘制到(600,600)这里。

不过要清楚,这里的moveTo()``lineTo()都只是状态而已,是规划,是我准备要画,还没有开始画,只是一个计划而已!3.选择画笔这里我们暂且只设置一下画笔的颜色和粗细。

context.lineWidth = 5,这句话的`意思是设置画笔(线条)的粗细为10px。

context.strokeStyle = "#AA394C",这句话的意思是设置画笔(线条)的颜色为玫红色。

因为Canvas是基于状态的绘制,所以我们在选择画笔粗细和颜色的同时,其实也是选择了线条的粗细和颜色。

4.确定绘制确定绘制只有两种方法,fill()和stroke(),有点绘画基础的应该知道,前者是指填充,后者是指描边。

因为我们只是绘制线条,所以只要描边就可以了。

调用代码context.stroke()即可。

画一个线条不就一条线段吗!废话了这么多!那我们就开始画吧。

JavaScript Code复制内容到剪贴板你的浏览器居然不支持Canvas?!赶快换一个吧!!运行结果:我还标注了一个页面解析图,供大家参考。

关于HTML 5 canvas 的基础教程

关于HTML 5 canvas 的基础教程

canvas 基础创建 canvas 的方法很简单,只需要在 HTML 页面中添加 <canvas> 元素: 1 2 3 <canvas id="myCanvas" width="300" height="150">Fallback content, in case the browser does not support Canvas. </canvas>为了能在 JavaScript 中引用元素,最好给元素设置 ID ;也需要给 canvas 设定高度和宽度。

创建好了画布后,让我们来准备画笔。

要在画布中绘制图形需要使用 JavaScript 。

首先通过 getElementById 函数找到 canvas元素,然后初始化上下文。

之后可以使用上下文 API 绘制各种图形。

下面的脚本在 canvas 中绘制一个矩形 (点击此处查看效果):1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // Get a reference to the element.var elem = document.getElementById('myCanvas');// Always check for properties 和 methods, to make sure your code doesn't break// in other browsers.if (elem &amp;&amp; elem.getContext) {// Get the 2d context.// Remember: you can only initialize one context per element. var context = elem.getContext('2d');if (context) {// You are done! Now you can draw your first rectangle.// You only need to provide the (x,y) coordinates, followed by the width and// height dimensions.context.fillRect(0, 0, 150, 100);}}可以把上面代码放置在文档 head 部分中,或者放在外部文件中。

HTML5之Canvas标签简要学习

HTML5之Canvas标签简要学习

摘要:HTML5 提供了画布(canvas)标签,通过与Javascript结合使用,可以在网页上绘制图像。

Canvas是一个矩形区域,使用Javascript可以控制其每一个像素。

本文将对canvas标签进行简要的学习。

HTML5 提供了画布(canvas)标签,通过与Javascript结合使用,可以在网页上绘制图像。

Canvas是一个矩形区域,使用Javascript可以控制其每一个像素。

本文将对canvas标签进行简要的学习。

1、canvas标签说明canvas标签是一个矩形区域,它包含两个属性width和height,分别表示矩形区域的宽和高,这两个属性都是可选的,并且都可以通过css来设定,他们的默认值是300px和150px。

canvas在网页中的形式如下:解析:为canvas设置id属性是便于Javascript调用;第二行是当浏览器不支持canvas标签时,将显示这行文字。

2、检测浏览器支持Canvas标签并没有得到目前所有浏览器的支持,因此在使用canvas绘图的时候,要先检测客户端浏览器是否支持。

下面的示例将通过Javascript判断浏览器是否支持:解析:上面的Javascript代码通过判断getContext方法是否为空来判断浏览器是否支持canvas标签。

3、绘制线条和图案在没有canvas之前,想要在网页上面绘制线条或图案,是非常麻烦且不兼容的。

我曾在《js画直线》一文中转载了网络上常用的在IE和FF中绘制线条的方法,但如果想要这些方法通用,则是不可能的。

但现在有了canvas标签,一切就变得简单了。

现在,你只需要在页面上添加canvas标签,并通过Javascript调用它的相应方法,就可以轻松的在页面上绘制线条和图案。

解析:显示在页面中放置了一个canvas标签,设定id、width、height等属性,并为这个标签设定边框。

在Javascript中检测浏览器是否支持当浏览器支持的时候开始调用getContext方法获得绘图的上下文(这地方很像vc中的GDI绘图~~),目前只提供了2D上下文,将来还有可能支持OpenGL ES的3D上下文。

五分钟学会Canvas基础

五分钟学会Canvas基础

五分钟学会Canvas基础关于本文五分钟学会Canvas基础,主要针对的读者是之前从未接触过Canvas的同学。

当然,你要学canvas 一定要有JS 基础啦。

其次就是,因为作者写的比较匆忙,可能在书写和描述中出现一些小的纰漏,请各位读者见谅。

最后,也希望这篇文章能够对迷茫的你产生一些帮助,感谢。

一、Canvas简介1.1 Canvas是什么?Canvas是HTML5中重要的元素,和audio、video元素类似完全不需要任何外部插件就能够运行。

Canvas中文翻译就是”画布”,它提供了强大的图形的处理功能(绘制,变换,像素处理…)。

但是需要注意,Canvas元素本身并不绘制图形,它只是相当于一张空画布。

如果开发者需要向Canvas上绘制图形,则必须使用JavaScript脚本进行绘制。

1.2 Canvas能够做什么?•基础图形的绘制•文字的绘制•图形的变形和图片的合成•图片和视频的处理•动画的实现•小游戏的制作1.3 Canvas支持的浏览器大多数现代浏览器都是支持Canvas的,比如Firefox,Safari,Chrome,Opera 的最近版本以及IE9都支持。

IE8及以下不支持HTML5,但是我们可以进行提示用户更新到最新的版本。

1.4 关于Canvas标签的基本概念在HTML 页面上定义Canvas元素与定义其他普通元素并无任何不同,它吃了可以指定id, style ,class ,hidden 等通用属性之外,还可以设置width 和height 两个属性。

为什么要特意去说这个呢?咱们在章节2.2中详细去说明。

除此之外,我们在网页中定义canvas 元素之后,它只是一张空白的画布,想要在画布上绘画,一定要经过下面几步。

1. 获取canvas 元素对应的DOM 对象,这必须是一个canvas 对象2. 调用canvas 对象的getContext( ) 方法,该方法返回一个canvasRenderingContext2D 对象,该对象可以绘制图形。

canvas 教程

canvas 教程

canvas 教程一、什么是Canvas?Canvas是HTML5中的一个元素,它可以用来绘制各种图形,包括线条、圆形、矩形、文字等。

通过使用JavaScript,我们可以控制Canvas来进行各种绘制操作,从而实现丰富的图形效果。

二、Canvas的基本使用步骤1. 使用HTML创建一个Canvas元素:```html<canvas id="myCanvas"></canvas>```2. 使用JavaScript获取Canvas元素:```javascriptvar canvas = document.getElementById("myCanvas");```3. 定义Canvas的绘图上下文:```javascriptvar ctx = canvas.getContext("2d");```4. 使用绘图上下文进行绘制操作:```javascript// 绘制一个矩形ctx.fillStyle = "red";ctx.fillRect(10, 10, 100, 100);// 绘制一条线段ctx.strokeStyle = "blue";ctx.lineWidth = 5;ctx.beginPath();ctx.moveTo(50, 50);ctx.lineTo(150, 50);ctx.stroke();// 绘制一个圆形ctx.fillStyle = "green";ctx.beginPath();ctx.arc(200, 200, 50, 0, 2 * Math.PI); ctx.fill();// 绘制文字ctx.font = "30px Arial";ctx.fillStyle = "black";ctx.fillText("Hello, Canvas!", 300, 300); ```三、Canvas的基本属性和方法1. 绘图上下文的属性:- fillStyle:设置填充颜色- strokeStyle:设置描边颜色- lineWidth:设置线条宽度2. 绘图上下文的方法:- fillRect(x, y, width, height):绘制一个填充矩形- strokeRect(x, y, width, height):绘制一个描边矩形- clearRect(x, y, width, height):清除指定区域的内容- beginPath():开始创建路径- moveTo(x, y):将路径移动到指定坐标- lineTo(x, y):绘制一条直线到指定坐标- stroke():绘制路径的描边- fill():填充路径的内部- arc(x, y, radius, startAngle, endAngle):绘制一段圆弧路径- font:设置字体样式- fillText(text, x, y):在指定坐标绘制文本四、Canvas的高级用法1. 图片绘制:```javascriptvar img = new Image();img.src = "image.jpg";img.onload = function() {ctx.drawImage(img, 0, 0);};```2. 动画效果:```javascriptfunction draw() {// 清除画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 绘制动画内容// ...// 使用requestAnimationFrame继续循环调用draw函数requestAnimationFrame(draw);}// 开始绘制动画draw();```以上是Canvas的基本教程,通过学习Canvas的属性、方法和高级用法,你可以实现各种有趣的图形和动画效果。

[HTML5资料]Canvas入门基础教程

[HTML5资料]Canvas入门基础教程

HTML5资料1Canvas教程<canvas>是一个新的用于通过脚本(通常是JavaScript)绘图的HTML元素。

例如,他可以用于绘图、制作图片的组合或者简单的动画(当然并不那么简单)。

It can for instance be used to draw graphs,make photo compositions or do simple(and not so simple)animations.1.1基本用法Basic usage<canvas>元素Let's start this tutorial by looking at the<canvas>element itself.让我们从<canvas>元素的定义开始吧。

<canvas id="tutorial"width="150"height="150"></canvas>This looks a lot like the<img>element,the only difference is that it doesn't have the src and alt attributes. <canvas>看起来很像<img>,唯一不同就是它不含src和alt属性。

The<canvas>element has only two attributes-width and height.These are both optional and can also be set using DOM properties or CSS rules.它只有两个属性,width和height,两个都是可选的,并且都可以DOM或者CSS来设置。

When no width and height attributes are specified,the canvas will initially be300pixels wide and150 pixels high.如果不指定width和height,默认的是宽300像素,高150像素。

详解HTML5canvas绘图基本使用方法

详解HTML5canvas绘图基本使用方法

详解HTML5canvas绘图基本使⽤⽅法<canvas></canvas>是HTML5中新增的标签,⽤于绘制图形,实际上,这个标签和其他的标签⼀样,其特殊之处在于该标签可以获取⼀个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进⾏绘图。

<canvas></canvas>只是⼀个绘制图形的容器,除了id、class、style等属性外,还有height和width属性。

在<canvas>>元素上绘图主要有三步:1. 获取<canvas>元素对应的DOM对象,这是⼀个Canvas对象;2. 调⽤Canvas对象的getContext()⽅法,得到⼀个CanvasRenderingContext2D对象;3. 调⽤CanvasRenderingContext2D对象进⾏绘图。

绘制线段moveTo()和lineTo()以下是⼀个简单的<canvas>绘图⽰例:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>canvas绘图演⽰</title><style type="text/css">#canvas{border: 1px solid #ADACB0;display: block;margin: 20px auto;}</style></head><body><canvas id="canvas" width="300" height="300">你的浏览器还不⽀持canvas</canvas></body><script type="text/javascript">var canvas = document.getElementById("canvas");var context = canvas.getContext("2d");//设置对象起始点和终点context.moveTo(10,10);context.lineTo(200,200);//设置样式context.lineWidth = 2;context.strokeStyle = "#F5270B";//绘制context.stroke();</script></html>如果没有通过moveTo()特别指定,lineTo()的起始点是以上⼀个点为准。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HTML5 canvas 初级入门教程HTML5 canvas 即 HTML5 画布,是一个现代浏览器都支持的 HTML5 非插件绘图的功能,本 文将展示如何通过 HTML5 canvas API 操作 canvas 元素、绘制图形、改变绘图颜色以及删 除图形,让我们开始进入这很酷的新技术的短暂旅行吧。

canvas 元素简介使用 canvas 元素相当简单,它只是一个单纯的 HTML 标签,外加宽高两个特性。

<canvas width="500" height="500"> <!-- 在这里插入向后兼容的内容,不支持 canvas 的浏览器可以解析和显示 --> </canvas>上面的代码在页面中插入了一个透明的画布,canvas 元素内部的内容可以在不支持 canvas 功能的浏览器下显示你想给你的用户提供的信息,联想下<noscript>元素就可以。

浏览器支持很重要的一点就是浏览器对 canvas 的支持还是相当不错的,所有现代浏览器都支持它,包 括最新版的 IE9:Internet Explorer 9.0+ Safari 3.0+ Firefox 3.0+ Chrome 3.0+ Opera 10.0+ iOS 1.0+ Android 1.0+有趣的是,你可以在 IE8 以及更低版本的 IE 浏览器下使用 canvas 功能,借助 ExplorerCanvas 插件。

画布尺寸当定义 canvas 元素的尺寸时,最好通过 HTML 设置它的 width 和 height 特性,因为通过 CSS 设置宽高会导致画布按比例缩放到你设置的值,这背后有它的逻辑原因:在 canvas 元 素的内部存在一个名为 2d 渲染环境(2d redering context)的对象,所以,通过 CSS 设置 画布尺寸会引起奇怪的效果。

探索 2d 渲染环境我们上面提到的 canvas 元素只是 canvas 功能的一部分,另一部分是 2d 渲染环境,它可以 让你实现很酷的看得到的东西。

需要完全理清的是:当你使用 canvas,你不是在 canvas 元素上画图,事实上你是在 canvas 元素内部的 2d 渲染环境上。

坐标系统如果你曾经使用过 2d 绘图编程语言(比如 ActionScript、Processing 等),你应该会了解基 于屏幕(screen-based)的坐标系统。

canvas 内部的 2d 渲染环境并没有什么不同之处,它 采用标准的笛卡尔坐标系统,原点位于屏幕左上角,向右移动会增加 x 坐标的值,向下移动 会增加 y 坐标的值,很容易理解。

通常坐标系统的单位是屏幕的 1 像素。

操作 2d 渲染环境需要利用 Javascript 提供的 API 来获取 2d 渲染环境对象,该方法为:getContext(),看下简 单的例子:<canvas id="csser-com-Canvas" width="500" height="500"><!-- 向后兼容的内容 --> </canvas> <script> var canvas = document.getElementById("csser-com-Canvas"); var c = canvas.getContext("2d"); </script>通过调用 canvas 对象的 getContext()方法,c 变量就包含了指向 2d 渲染环境的引用,这意 味着你现在已经完成了在画布上绘图的一切准备,接下来可以开始绘图了。

绘制矩形获得了 2d 渲染环境对象,就可以通过调用 API 提供的大量方法来进行绘图了,一个最基本 的方法就是 fillRect(),通过它可以绘制一个填充颜色的矩形(颜色默认值为黑色)。

在 c 变量的下面增加以下代码:c.fillRect(0, 0, 50, 50);这将在画布左上角绘制绘制一个黑色背景的正方形:在调用 fillRect()方法时传入了 4 个参数:   第一个是基于原点的 x 坐标位置 第二个是基于原点的 y 坐标位置 第三个是宽度 第四个是高度 fillRect 的伪代码看起来应该像这个样子:c.fillRect(x, y, width, height);很酷的是,不仅可以绘制填充的矩形,你还可以绘制线框矩形,使用 strokeRect()方法,绘 制四周产生描边效果的矩形,如:c.strokeRect(50, 50, 100, 100);strokeRect 的参数与 fillRect 是一致的,绘制的结果如下:利用 canvas 绘图,简单、优美,所有的方法都很易懂,但是当放在一起使用可以让你画出 很漂亮的图形。

绘制路径矩形是唯一一个可以通过单个 API 方法绘制的图形,先把它放在一边,我们来学习下路径 (Paths)绘制。

使用路径,可以绘制线条、连续的曲线以及复合图形。

绘制一个简单的路径需要利用一些 AIP 方法:beginPath 开始一个新路径 moveTo 移动路径的绘图起点 lineTo 从 moveTo 定义的点开始绘制连续的路径,或者从上一次的 lineTo 的终点开始绘制。

closePath 连接最后的点和最初的点并关闭路径绘制 fill 用颜色填充路径 stroke 描变路径尝试执行下面的代码:c.beginPath(); c.moveTo(50, 50); c.lineTo(50, 250); c.lineTo(250, 250); c.closePath; c.fill();执行结果为:你可以用同样的方法绘制你希望的图形,canvas 还包含更高级的路径绘制,比如圆弧(可 以绘制圆形)和贝塞尔曲线(用于绘制很酷的曲线效果),总之,绘制路径要比绘制矩形复 杂的多。

改变颜色到目前为止,我们的示例所绘制的都是填充或描边的黑色,canvas 也提供了一些属性用于 改变绘制图形的颜色,它们是 fillStyle 和 strokeStyle,它们的语法都是可以自解释的,所以 我们直接来改变一个矩形的填充颜色:c.fillStyle = "rgb(255, 0, 0)"; c.fillRect(50, 50, 100, 100);结果:或者,你可以改变描边的颜色:c.strokeStyle = "rgb(255, 0, 0)"; c.strokeRect(50, 50, 100, 100);结果:fillStyle 和 strokeStyle 属性很漂亮的一点就是, 它们都支持普通 CSS 颜色值, 这意味着你可 以使用 RGB、RGBA、HSA、颜色名称以及十六进制颜色值。

还有一点需要指出的是,改变画布中的颜色值不会影响已经绘制的任何图形,例如,如果你 绘制了一个黑色的矩形,然后设置填充为红色,接着绘制了另一个矩形,这时第一个矩形仍 然为黑色。

改变线宽除了可以改变颜色,还可以利用 lineWidth 属性改变描边线条的宽度,按照上面的例子,改 变线条宽度:c.lineWidth = 20; c.strokeStyle = "#f00"; c.strokeRect(50, 50, 100, 100);结果:同样的可以改变路径的线宽:c.lineWidth = 20; c.beginPath(); c.moveTo(50, 50); c.lineTo(50, 250); c.lineTo(250, 250);c.closePath(); c.stroke();结果:还有一些其它的改变线条的方式,比如 lineCap 设置线条的末端,lineJoin 设置线条的角。

删除图形最后我们来了解下如何删除已经绘制的图形,删除图形只需 Javascript API 提供的一个名为 clearRect 的方法,其原理是使参数指定的矩形区域背景变为透明。

本文示例画布长宽分别为 500 像素,要想删除整个画布图形,可以这样做:c.fillRect(50, 50, 100, 100); c.clearRect(0, 0, 500, 500);上面的代码执行后,你会什么都看不到,事实上填充的矩形已经绘制,只是瞬间被删除了, 所以你看不到它。

如果你不清楚画布的具体宽高,清除整个画布可以这样:c.clearRect(0, 0, canvas.width, canvas.height);删除画布中的区域如果你不想删除整个画布的图形,而仅仅删除画布中的一个区域,假如,你绘制了一个黑色 的正方形,旁边绘制了一个红色的正方形:c.fillRect(50, 50, 100, 100); c.fillStyle = "#f00"; c.fillRect(200, 50, 100, 100);看起来是这个样子:接下来你可以通过 clearRect 删除黑色背景的正方形而只保留红色正方形:c.clearRect(50, 50, 100, 100);注意传入 clearRect 的参数能确保能覆盖要被删除的图形的区域。

结语canvas 易于使用、上手快速,并且强大的要死(唉,自己翻译的文章自己不敢读,太拗口 了)英文原文:Canvas From Scratch: Introducing Canvas。

相关文档
最新文档