canvas基础知识点(一)
给canvas设置宽高:
canvas标签的宽高默认是300*150,是一个行内块元素
可以在canvas标签上通过width,height来设置
可以在js中给dom对象设置:mycanvas.width = 500
mycanvas.height = 500注意:不要通过css来调整canvas的宽高,导致内部的canvas画布被拉伸,图形变形
- 获取画笔工具:
canvas绘图都是通过canvas标签的画笔来进行的var ctx = canvas.getContext('2d')
注意,不要写成getContent,里面传入的参数目前也只有2d这一种情况
- 获取画笔工具:
3、 描边和填充
canvas绘制图形都是绘制的路径,看不见摸不着的一种东西,需要进行描边或填充之后才能看到真正的图形
如果绘制图形的路径在绘制完成后没有闭合,继续绘制路径的时候会首尾相连
在填充的时候如果路径依然没有闭合,会将路径的闭合区域填充
ctx.fill()//填充
ctx.stroke()//描边
可以调整ctx.strokeStyle,ctx.fillStyle属性来更改填充,描边的颜色,值为颜色值(rgb,rgba,word,16进制)
- 绘制矩形
ctx.rect(x,y,w,h)
canvas的坐标系起点是左上角,x轴向右正方向,y轴向下正方向
x,y代表的是矩形起点(左上角)的位置,w,h就是宽高
可以使用strokeRect,fillRect方法直接绘制一个填充、描边的矩形
清楚矩形区域以及动画原理
ctx.clearRect(x,y,w,h)可以清除某一个矩形区域的图形
canvas实现动画的原理就是不断的绘制和擦除来实现var ctx = canvas.getContext("2d")
let x=0,y=0;
ctx.fillRect(x,y,50,50)
setInterval(function () {
//绘制新的图形前擦掉之前的
ctx.clearRect(0,0,canvas.width,canvas.height)
x++;y++;
//不断绘制新图形
ctx.fillRect(x,y,50,50)
},30)
canvas基础知识点(一)的更多相关文章
- canvas API ,通俗的canvas基础知识(一)
在没学canvas的时候,觉得canvas是这么的神秘,这么的绚丽,这么的高深,用canvas做出来的效果是如此的炫酷,能做的事情如此的宽广,简直让我心生敬畏之心,时常感叹:我要是得此技能,必定要上天 ...
- HTML5移动开发学习笔记之Canvas基础
1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...
- fastclick 源码注解及一些基础知识点
在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...
- .NET基础知识点
.NET基础知识点 l .Net平台 .Net FrameWork框架 l .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转 l 两种交 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点(转)
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- canvas基础之旅
canvas 主要使用2D rendering context API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...
- canvas 基础知识整理(二)
html部分: <canvas id="myCanvas" width="800" height="800" ></can ...
- canvas 基础知识整理(一)
canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本 ...
随机推荐
- 搭建自己的框架WedeNet(五)
WedeNet2018.WedeWcfServices-WCF服务层:结构如下: 就是定义了服务契约接口和服务类,以OrderServices为例,如下: using System; using Sy ...
- 三、maven学习-高级
maven父子工程
- fork 代码进阶
fork进阶知识 先看一份代码: [cpp] view plain copy /* * fork_test.c * version 2 * Created on: 2010-5-29 * ...
- qq快捷打开聊天窗口的代码
pc代码: http://wpa.qq.com/msgrd?v=3&uin=8423291&site=qq&menu=yes
- docker 卸载旧版本
列出docker安装过的相关包: sudo yum list installed | grep docker 删除相关安装包 sudo yum -y remove docker-ce.x86_64su ...
- 如何设置树莓派 -Zero 自启动连接WIFI
1. 首先我们需要一台可以读取树莓派跟文件系统的Linux虚拟机(比如Ubuntu) 将树莓派SD卡系统插入电脑,识别并打开rootfs文件夹,切换到`rootfs/etc/wpa_supplican ...
- MySQL 安装与基本概念
Mysql版本 第一条产品线:5.0.xx及升级到5.1.xx的产品系列,这条产品线继续完善与改进其用户体验和性能,同时增加新功能,这条路线可以说是MySQL早期产品的延续系列,这一系列的产品发布情况 ...
- java 多线程,线程安全等定义
线程安全, synchronized的使用,保证方法或代码块操作的原子性.可见性和有序性 参考这篇文章: 7张图带你轻松理解Java 线程安全 public class ThreadDemo { pr ...
- 吐槽一下jsoup
网络爬虫的本质就是通过域名加上特定的路由方式与远程资源建立一个短暂的连接,然后通过io流的方式读取.然后说一下jsoup,jsoup可以说是目前的爬虫工具包里面对java底层的工具类封装最简单的一种了 ...
- php类知识---trait特性
#由于php类只支持单一继承,但我们又需要使用一些类的优秀特性,因此有了trait <?php trait cpc #trait 下的方法只能用public { function trainni ...