canvas--总结二
canvas图形绘制
- 矩形绘制
rect(x,y,w,h) 没有独立路径
strokeRect(x,y,w,h) 有独立路径,不影响别的绘制
fillRect(x,y,w,h) 有独立路径,不影响别的绘制
clearRect(x,y,w,h) 需要擦除的矩形区域
- 圆弧绘制
弧度概念
一个圆的弧度等于2π
角度弧度转化 一角度等于π/180
绘制圆弧:arc(x,y,r,startAngle,endAngle,anticlockwise);
参数:
x 圆心横坐标
y 圆心纵坐标
r 半径
startAngle 开始角度
endAngle 结束角度
anticlockwise 是否逆时针方向绘制(默认false表示顺时针,true表示逆时针)注意:在使用逆时针时,看需求是否要改变开始和结束的角度
- 绘制文本
ctx.font=“微软雅黑” 设置字体
strokeText(text,x,y,maxWidth); /描边文字 fillText(text,x,y,maxWidth);/ 填充文字
参数:
text: 要绘制的文本
x,y : 文本绘制的坐标(文本左下角)
maxWidth: 设置文本最大宽度,可选参数
ctx.textAngle 文本水平对齐方式,相对绘制坐标来说(参数:left,center,right,start(默认),end)
ctx.direction 属性css(rtl,ltr)start和end相关
如果是ltr,start和left表现一致(ltr--从left到right)
如果是rtl,start和right表现一致(rtl--从right到left)
ctx.textBaseline 设置基线(垂直对齐方式)
top 文本的基线处于文本的正上方 并且有一段距离
middle 文本的基线处于文本的正中间
bottom 文本的基线处于文本的正下方,并有一段距离
hanging 文本的基线处于文本正上方,并且和文本粘合
alphabetic 默认值,基线处于文本的下方,并且穿过文字
ideographic和bottom相似,但是不一样//
measureText() 获取文本宽度obj.width
做动画
- 绘制图片
drawImage();
三个参数时: drawImage(img,x,y);
- img 图片对象,canvas对象,video对象
- x,y 图片绘制的左上角
五个参数时:drawImage(img,x,y,w,h);
- img 图片对象,canvas对象,video对象
- x,y 图片绘制的左上角
- w,h 图片绘制尺寸设置(图片缩放,不是截取)
九个参数时:drawImage(img,x,y,w,h,x1,y1,w1,h1);
- img 图片对象,canvas对象,video对象
- x,y 图片绘制的左上角
- w,h 图片绘制尺寸设置(图片缩放,不是截取)
- x1,y1,w1,h1 画布中的一个矩形区域
- 坐标变换
平移 移动画布的圆点
translate(x.y); 参数表示移动目标点的坐标
缩放
scale(x,y); 参数表示宽高的缩放比例
旋转
rotate(angle); 参数表示旋转角度
参考文档:
w3school http://www.w3school.com.cn/tags/html_ref_canvas.asp
Canvas_API https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial
canvas--总结二的更多相关文章
- 小程序canvas生成二维码图片踩的坑
1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...
- 你不知道的Canvas(二)
你不知道的Canvas(二) 一.色彩Colors 到目前为止,我们只看到过绘制内容的方法.如果我们想要给图形上色,有两个重要的属性可以做到:fillStyle 和 strokeStyle. fill ...
- canvas绘制二次贝塞尔曲线----演示二次贝塞尔四个参数的作用
canvas中绘制二次贝塞尔曲线的方法为ctx.quadraticCurveTo(x1,y1,x2,y2); 四个参数分别为两个控制点的坐标.开始点即当前canvas中目前的点,如果想从指定的点开始, ...
- 用canvas生成二维码
$("#actimg").qrcode({ render: "canvas", //设置渲染方式,有tabl ...
- canvas生成二维码,并下载保存为本地的图片
function getTicket(id,salt){//qrcode生成canvas二维码 $(".zc-mask").show(); $(".edit-box&qu ...
- 基于canvas的二维码邀请函生成插件
去年是最忙碌的一年,实在没时间写博客了,看着互联网行业中一个又一个人的倒下,奉劝大家,健康要放在首位,保重身体.好了,言归正传,这是17年的第一篇博文,话说这天又是产品同学跑过来问我说:hi,lenn ...
- amazeui+canvas绘制二维码
<link rel="stylesheet" type="text/css" href="css/amazeui.min.css"/& ...
- canvas基础[二]教你编写贝塞尔曲线工具
贝塞尔曲线 bezierCurveTo 在线工具 https://canvature.appspot.com/ [感觉这个好用一些] https://blogs.sitepointstatic.com ...
- html5 canvas 笔记二(添加样式和颜色)
色彩 Colors fillStyle = color 设置图形的填充颜色. strokeStyle = color 设置图形轮廓的颜色. 透明度 Transparency globalAlpha = ...
- FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...
随机推荐
- Python+moviepy使用manual_tracking和headblur函数10行代码实现视频人脸追踪打马赛克
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识 1.1.headblur简介 追踪人脸打马赛克需要使用headblur函数. 调用语法: headblur(clip,fx,fy,r_zone, ...
- Python学习随笔:获取当前主机名和用户名的方法
在Python中,要获取当前主机的主机名和登录用户名很简单: 使用os.getlogin():返回当前登录用户名 使用socket.gethostname():返回当前机器主机名 代码如下: > ...
- 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定
前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...
- javascript:void(0)用法和常见问题
javascript:void(0)的用法 下面的代码创建了一个超级链接,当用户以后不会发生任何事.当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果. <a H ...
- beautifulsoup使用记录
1.关于编码问题, 被编码为了?号,解决办法是:content.prettify(formatter="html"),这样 存到数据库里面的就是html代码.
- eclipse/myeclipse 使用技巧
一.变量名自动补全 原理是:在输入变量名后,去掉按下空格或=后,代码上屏 以前只知道alt+/调出assist,后来发现可以所有字母都激活content assist(8.1里有写).用起来果然很爽, ...
- css3动画帧
动画帧实现: css3使用steps来实现逐帧动画,动画过程中可能出现抖动,实乃精度偏差问题. 通常在动画里用到百分比单位时会出现抖动或位移现象,解决方法就是转换成具体的rem或px长度单位. 动画一 ...
- Python轻松入门到项目实战-实用教程
本课程完全基于Python3讲解,针对广大的Python爱好者与同学录制.通过本课程的学习,可以让同学们在学习Python的过程中少走弯路.整个课程以实例教学为核心,通过对大量丰富的经典实例的讲解.让 ...
- Java IO流字符流简介及基本使用
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有File ...
- BST和DST简单的matlab程序(图的广度和深度遍历)
图的广度和深度遍历,具体内容教材有 clc;clear all;close all; %初始化邻接压缩表compressTable=[1 2;1 3;1 4;2 4;2 5;3 6;4 6;4 7]; ...