经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
canvas教程(一) 简介
来源:cnblogs  作者:cnyballk  时间:2019/7/8 8:48:59  对本文有异议

什么是 canvas

按例是要介绍一下 canvas 的,在没有 canvas 之前,我们为了网页的效果,很多情况下是使用了图片来实现,不过用图片就需要加载,而且图片的体积也是一个问题,所以在 html5 的规范里新增了一个 canvas 元素(画布)

那么其实在 html5 中有两个 2d 图形技术,还有一个是叫 svg,而它们的区别就在于:

  1. canvas 是由 js 动态生成的,svg 是使用 xml 静态描述的
  2. 每次修改,canvas 需要重绘,svg 不需要
  3. canvas 是“位图”,适用于像素处理和动态渲染,图形放大会影响质量,而 svg 是“矢量”,图形放大不会影响质量。

这两种技术都各有千秋,适用于不同的场合,我们可以根据开发场景来选择,这里就不多介绍了。

canvas 元素的知识

canvas 是一个行内块元素,它默认是宽度 300px 和高度 150px,可以使用 html 属性和 js 定义宽高。

?? 假如是用 css 定义宽高,在使用 js 获取 canvas 的宽高依然会是其默认值

使用 canvas 绘制图形,需要三步

  1. 获取 canvas 对象
  2. 获取上下文环境对象 context
  3. 绘制图形
  1. var canvas = document.getElementById('canvasId');
  2. var context = canvas.getContext('2d');

而我们以后所学习到的 api 和属性都是 context 对象的。

那么到这里有眼力好的同学就能看到了 getContext 方法的参数是 2d,那是不是有 3d?

其实 html5 的 canvas 暂时只提供了 2d,想在 html 使用 3d 的同学可以学习一下 webgl,webgl 其实难度也有点大,也许可以尝试一下 threejs,因为 threejs 是基于 webgl 封装的,感兴趣的都可以去相关的官网上学习。

结束

好了,本次的教程就到这里结束了,下次将为大家带来直线相关的绘制

原文链接:http://www.cnblogs.com/cnyball/p/11148891.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号