Canvas技术入门:介绍、线条绘制
来源:互联网 发布:浏览器比价软件 编辑:程序博客网 时间:2024/05/01 13:24
Canvas是HTML 5中新增加的一种元素,可以把它想象成一个可以作画的画布,它提供了Javascript API,用这些API可以在上面绘制线条、多边形、圆弧、图片、文字等。和SVG不同,Canvas是基于位图而不是矢量的。
<canvas>标记由 Apple 在 Safari 1.3 Web浏览器中引入。对 HTML的这一根本扩展的原因在于,HTML 在 Safari 中的绘图能力也为 Mac OS X 桌面的 Dashboard 组件所使用,并且 Apple 希望有一种方式在 Dashboard 中支持脚本化的图形。接下来Mozilla和Opera分别实现了这一功能,后来WHATWG组织将其标准化到HTML5中,成为下一代Web应用程序中的重要技术之一。
在HTML中使用Canvas非常简单,只需要插入如下的代码:
1
<
canvas
id
=
"example1"
width
=
"400"
height
=
"300"
><
BR
>您的浏览器不支持canvas,请升级。<
BR
></
canvas
>
你可以使用CSS来指定Canvas元素的样式,比如width、height、margin、padding、border、background等属性,也可以通过document.getElementById或者其它DOM方法来获取Canvas元素对象,这和其它元素(比如图片)并没有区别。
不同的是,在获取到Canvas的DOM对象后,我们可以做更多的事情,那就是在它上面涂鸦。不过,在开始之前,必须要获取到画布的Context:
1
var
elem = document.getElementById(
"example2"
);
2
var
context = elem.getContext(
"2d"
);
getContext这个方法必须要传一个参数,来标示你接下来是要画2D的图还是3D的图。虽然目前并没有浏览器实现3D画图,但是这个接口是预留了。在获取到context之后,我们就可以进行一些画图操作了。
绘制线条
在Canvas元素上画线有点类似于使用Windows自带的画图工具,其操作步骤是先选择画笔宽度、颜色、背景等,然后进行画画。
1
//准备画笔
2
context.strokeStyle =
'#f00'
;
3
context.lineWidth = 10;
4
//开始画线
5
context.beginPath();
6
context.moveTo(15, 50);
7
context.lineTo(350, 50);
8
context.stroke();
9
context.closePath();
在以上代码中,前两行代码分别设置了线条的样式为红色,线条宽度为10。接下来调用beginPath开始画线,然后调用moveTo方法将画笔移动到(20, 10)这个坐标点,从这个点下笔绘制直线到(350, 10)。请注意,代码执行到目前为止,在画布上是看不到任何东西的,因为所有的线都必须经过stroke方法执行后,才会显示出来。这就好比我们在画画时,先用铅笔将线描出来,然后用画笔进行着色一样。要结束一条线时,需要调用closePath方法,否则再继续画线时,会和这条线的终点连起来。最终的图如下所示:
Canvas中除了画线,还可以进行矩形绘制、将页面中的图片绘制到画布、旋转平移和缩放画布、像素运算等操作,这些内容将在以后的篇幅中介绍。
- Canvas技术入门:介绍、线条绘制
- [Canvas系列]Canvas简单线条绘制_02
- html5<canvas>标签绘制矩形,线条,圆
- 小贝_html5 canvas绘制线条曲线
- canvas-线条
- Canvas基础1-绘制基本图形和线条
- html5的canvas绘制线条,moveTo和lineTo详解
- <canvas>学习笔记——实时绘制线条摆动
- 为什么canvas绘制的线条会模糊、有锯齿?
- 绘制线条
- 绘制线条
- SVG技术入门:线条动画实现原理
- SVG技术入门:线条动画实现原理
- HTML5 Canvas里绘制椭圆并保持线条粗细均匀的方法
- HTML5 canvas图形绘制基础(矩形,线条,渐变色,圆形,图片,多边形)
- 积累绘制的线条!
- 信手绘制线条刚体
- MFC绘制不规则线条
- Three20添加方法
- HTML 5 canvas —— 基本语法
- Message Broker 数据源的配置[windows平台]
- WCF学习总结(三)
- sql 的执行时间
- Canvas技术入门:介绍、线条绘制
- MFC截取桌面背景图
- Struts2 拦截器
- 实践简单的修复U盘
- php中gb2312跟unicode码的转换
- Ubuntu Install/Remove
- Runtime error 5 Invalid procedure call or argument
- oracle 未写入文档的参数介绍
- ubuntu 中文乱码