canvas教程(一) 简介
什么是 canvas
按例是要介绍一下 canvas 的,在没有 canvas 之前,我们为了网页的效果,很多情况下是使用了图片来实现,不过用图片就需要加载,而且图片的体积也是一个问题,所以在 html5 的规范里新增了一个 canvas 元素(画布)
那么其实在 html5 中有两个 2d 图形技术,还有一个是叫 svg,而它们的区别就在于:
- canvas 是由 js 动态生成的,svg 是使用 xml 静态描述的
- 每次修改,canvas 需要重绘,svg 不需要
- canvas 是“位图”,适用于像素处理和动态渲染,图形放大会影响质量,而 svg 是“矢量”,图形放大不会影响质量。
这两种技术都各有千秋,适用于不同的场合,我们可以根据开发场景来选择,这里就不多介绍了。
canvas 元素的知识
canvas 是一个行内块元素,它默认是宽度 300px 和高度 150px,可以使用 html 属性和 js 定义宽高。
⚠️ 假如是用 css 定义宽高,在使用 js 获取 canvas 的宽高依然会是其默认值
使用 canvas 绘制图形,需要三步
- 获取 canvas 对象
- 获取上下文环境对象 context
- 绘制图形
var canvas = document.getElementById('canvasId');
var context = canvas.getContext('2d');
而我们以后所学习到的 api 和属性都是 context 对象的。
那么到这里有眼力好的同学就能看到了 getContext 方法的参数是 2d,那是不是有 3d?
其实 html5 的 canvas 暂时只提供了 2d,想在 html 使用 3d 的同学可以学习一下 webgl,webgl 其实难度也有点大,也许可以尝试一下 threejs,因为 threejs 是基于 webgl 封装的,感兴趣的都可以去相关的官网上学习。
结束
好了,本次的教程就到这里结束了,下次将为大家带来直线相关的绘制
canvas教程(一) 简介的更多相关文章
- canvas教程(二) 绘制直线
经过 canvas 教程(一) 简介 我们知道了 canvas 的一些基本情况 而本次是给大家带来直线的绘制 canvas 中,基本图形有两种,一种是直线,还有一种是曲线 但是无论是直线还是曲线,我们 ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
- Bootstrap:教程、简介、环境安装
ylbtech-Bootstrap:教程.简介.环境安装 1. Bootstrap 教程返回顶部 1. Bootstrap 教程 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.B ...
- Python爬虫教程-20-xml 简介
本篇简单介绍 xml 在python爬虫方面的使用,想要具体学习 xml 可以到 w3school 查看 xml 文档 xml 文档链接:http://www.w3school.com.cn/xmld ...
- canvas教程(三) 绘制曲线
经过 canvas 教程(二) 绘制直线 我们知道了 canvas 的直线是怎么绘制的 而本次是给大家带来曲线相关的绘制 绘制圆形 在 canvas 中我们可以使用 arc 方法画一个圆 contex ...
- Canvas 教程
在本文章中 在你开始之前 教程内容 相关资料 A note to contributors <canvas> 是一种可以通过编写脚本(通常是JavaScript)来实现绘制图形的HTML元 ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程:简介及目录》(附上完整工程文件)
介绍:讲述如何使用Genesis-3D来制作一个横版格斗游戏,涉及如何制作连招系统,如何使用包围盒实现碰撞检测,软键盘的制作,场景切换,技能读表,简单怪物AI等等,并为您提供这个框架的全套资源,源码以 ...
- [js高手之路] html5 canvas教程 - 绘制七巧板
七巧板长什么样? 用canvas把他画出来,其实就是把这7个区域的图形,每个点的坐标找出来,再用moveTo, lineTo连线,设置不同的颜色即可. <head> <meta ch ...
- Canvas教程
一.Canvas基本用法 canvas对应中文是“画布”,<canvas>是HTML5的新元素,IE9+支持 canvas元素的默认大小是300px * 150px,最简单的代码将生成一个 ...
随机推荐
- Spring Cloud-Eureka 服务注册中心
Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件 它主要包括两个组件:Eureka Server 和 Eureka Client Eureka Client: ...
- ESB企业服务总线到底是什么东西呢?
顾名思义,企业服务总线(ESB)就是一条企业架构的总线,所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求方法.消息格式,并对服务提供者进行寻址,转发服务请求. ...
- server computer anaconda
star@xmatrix:~/Anaconda$ star@xmatrix:~/Anaconda$ conda create -n wind1 python=3.6Solving environmen ...
- Linux 磁盘管理_016
以5个方面讲解 1. 硬盘 2. 磁盘RAID.LVM等 3. 磁盘分区 4. 磁盘格式化 5. 磁盘挂载后磁盘管理 一.硬盘 硬盘分类 备注 机械硬盘 IDE SCSI SATA SAS 固态 ...
- python中将函数赋值给变量时需要注意的一些问题
python中将函数赋值给变量时需要注意的一些问题 变量赋值是我们在日常开发中经常会遇到的一个问题,本文主要给大家介绍的是关于python将函数赋值给变量时需要注意的一些问题,分享出来供大家参考学习, ...
- linux用户态和内核态理解
1.特权级 Intel x86架构的cpu一共有0-4四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查.硬件已经提供了一套特权级使用的相关机制 ...
- Python删除文件,空文件夹,非空文件夹
首先,在Python中文件路径是这种格式: file_path1 = r'F:\test\1' 删除文件,命令 os.remove(file_path1) 删除空文件夹,命令 os.rmdir(fil ...
- python 中的eval与exec
eval类似exec,是使用python编译器运行表达式和语句两者区别在于:eval是编译表达式并返回值(如: eval("'hello'*2") 结果是 hellohello)e ...
- 升级libstdc++、libgcc_s.so、libc.so.6
参考资料:https://blog.csdn.net/ltl451011/article/details/7763892/ https://blog.csdn.net/na_beginning/art ...
- 翻书shader
//把下面的shader挂载到plane上,调节_Angle Shader "Unlit/PageTurning"{ Properties { _Color ("Colo ...