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--总结二的更多相关文章

  1. 小程序canvas生成二维码图片踩的坑

    1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...

  2. 你不知道的Canvas(二)

    你不知道的Canvas(二) 一.色彩Colors 到目前为止,我们只看到过绘制内容的方法.如果我们想要给图形上色,有两个重要的属性可以做到:fillStyle 和 strokeStyle. fill ...

  3. canvas绘制二次贝塞尔曲线----演示二次贝塞尔四个参数的作用

    canvas中绘制二次贝塞尔曲线的方法为ctx.quadraticCurveTo(x1,y1,x2,y2); 四个参数分别为两个控制点的坐标.开始点即当前canvas中目前的点,如果想从指定的点开始, ...

  4. 用canvas生成二维码

    $("#actimg").qrcode({                        render: "canvas",    //设置渲染方式,有tabl ...

  5. canvas生成二维码,并下载保存为本地的图片

    function getTicket(id,salt){//qrcode生成canvas二维码 $(".zc-mask").show(); $(".edit-box&qu ...

  6. 基于canvas的二维码邀请函生成插件

    去年是最忙碌的一年,实在没时间写博客了,看着互联网行业中一个又一个人的倒下,奉劝大家,健康要放在首位,保重身体.好了,言归正传,这是17年的第一篇博文,话说这天又是产品同学跑过来问我说:hi,lenn ...

  7. amazeui+canvas绘制二维码

    <link rel="stylesheet" type="text/css" href="css/amazeui.min.css"/& ...

  8. canvas基础[二]教你编写贝塞尔曲线工具

    贝塞尔曲线 bezierCurveTo 在线工具 https://canvature.appspot.com/ [感觉这个好用一些] https://blogs.sitepointstatic.com ...

  9. html5 canvas 笔记二(添加样式和颜色)

    色彩 Colors fillStyle = color 设置图形的填充颜色. strokeStyle = color 设置图形轮廓的颜色. 透明度 Transparency globalAlpha = ...

  10. FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...

随机推荐

  1. django+celery+redis应用

    一.celery介绍 1.应用场景 a. Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用ce ...

  2. 部署 Prometheus 和 Grafana 到 k8s

    在 k8s 中部署 Prometheus 和 Grafana Intro 上次我们主要分享了 asp.net core 集成 prometheus,以及简单的 prometheus 使用,在实际在 k ...

  3. moviepy音视频开发:audio_normalize调整剪辑音量大小到正常

    ☞ ░ 前往老猿Python博文目录 ░ 概述 audio_normalize函数用于将一个剪辑的音量大小调整到正常,调整的思路就是将剪辑中音频帧数据的最大值取出来,当其值小于1时,表示剪辑的音量偏小 ...

  4. PyQt开发实战: 利用QToolBox开发的桌面工具箱

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...

  5. Python调用云服务器AWVS13API接口批量扫描(指哪打哪)

    最近因为实习的原因,为了减少一部分的工作量,在阿里云服务器上搭建了AWVS扫描器 方便摸鱼 但是发现AWVS貌似没有批量添加的方法,作者只好把整理的URL.txt捏了又捏 手动输入是不可能手动输入的, ...

  6. 「生产事故」MongoDB复合索引引发的灾难

    前情提要 11月末我司商品服务的MongoDB主库曾出现过严重抖动.频繁锁库等情况. 由于诸多业务存在插入MongoDB.然后立即查询等逻辑,因此项目并未开启读写分离. 最终定位问题是由于:服务器自身 ...

  7. Markdown常用数学符号&公式

    符号 代码 描述 \(\sim\) $\sim$ 波浪号 \(\sum\) $\sum$ 求和公式 \(\sum_{i=0}^n\) $\sum_{i=0}^n$ 求和上下标 \(\times\) $ ...

  8. 记一道好VAN的数学题

    2020.4.12 Solution 首先发掘几个性质: \(99\) 个点可以分成 \(33\) 组,每组中个\(3\) 个点组成等边三角形.两两端点相差 \(33\) 条弧. 任意状态下,已经染完 ...

  9. Hive JDBC执行load时无法从本地加载数据

    通过hive-jdcv连接hive server,在应用服务端执行以下命令,报错:Hiver Server节点上找不到data.txt load data local inpath '/home/dw ...

  10. 【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别

    最近在准备一些科普性的知识内容,发现大家对于一些基础性的知识概念还是有点模糊.今天先来简单介绍一下IaaS/PaaS/SaaS的区别~ 其实还有一个On-Premises(本地部署)的概念,也可以一并 ...