canvas 简单用法

2023-11-09

canvas使用方法

         1、首先要获取页面中的画布

                   var canvas = document.querySelector("canvas");

         2、创建画笔

                   var context = canvas.getContext("2d");

         3、选择要绘画的方式,进行绘画

                   1.context.stroke()   描边

                            context.strokeStyle = "#f00"   描边样式

                   2.context.fill()  填充

                            context.fillStyle = "#f00";         填充样式

1、绘画矩形

         x,y,w,h 分别代表横纵坐标和宽高

         context.strokeRect(x,y,w,h)    描边矩形

         context.fillRect(x,y,w,h); 填充矩形

2、渐变

         创建渐变对象

         var g = context.createLinearGradient(50,100,550,100);

         添加颜色

         g.addColorStop(0,"#f00")

         g.addColorStop(0.5,"#fff")

         g.addColorStop(1,"#f0f");

         使用渐变对象填充

         context.fillStyle = g

         context.fillRect(50,50,500,200);

3、绘画文本

         context.strokeText("想要绘画的文本",x,y)          描边文本

         context.fillText("....",x,y)                            填充文本

         var text = "阿打算打打打";

         context.measuerText(text).wifth                      获取文本的宽度

         context.measureText(text).heght                     获取文本的高度

 

         context.textBaseline = "top"  文本基线

                   默认值为:alphabetic  第三根线

                   属性值:top middle bottom

 

4、绘制(路径)

         (注意:在绘制路径的时候最好是开始一段路径后在绘制完成后关闭画笔)

         context.beginPath()         开始一段路径

         context.moveTo(x,y)        开始的第一个点

         context.lineTo(x,y)   经过的一个点,可以有多个

         context.fill()               填充一段路径

         context.stroke()       描边一段路径

         context.closePath();         结束一段路径的绘制

        

 

         绘制圆

                   context.arc(x,y,r,start,end)  分别为:横纵坐标,半径,开始时的弧度,结束时

 

的弧度

                   context.fill()     填充这个圆

                   context.stroke()       描边这个圆

 

 

5、绘制图片

         创建一个img对象

         var img = new Image();

         添加图片路径

         img.src = ""

         因为src是异步,需要等img完全加载完才能去绘制

         img.onload = function(){

         context.drawImage(img,x,y,w,h);

         }

6、画布中常用的一些方法,属性

         context.fill()                        填充方法

         context.stroke()                描边方法

         context.clip()                      剪切方法

         context.lineWidth = "10"         设置边框的宽度

         context.fillStyle = "#f00" 填充样式

         context.strokeStyle = "#f00"   描边样式

         context.textBaseline = "top"  基线设置方式,参数有 top middle ..

         context.measureText(txt).width     获取文本的宽度

         context.font = "10px SieHer " 设置字体大小以及样式 ,两个参数都需要

         context.getContext("2d")        获得2d画笔

         context.beginPath();                 开始一段路径

         context.closePath();                  结束一段路径

         context.scale(0.9,0.9)     坐标的缩放倍数

         context.drawImage(img,x,y,w,h);            将图片绘制到画布上

         context.save();                  保存绘图的上下文  ,当前变形的数据(坐标什么呀什么的)

         context.restore();    恢复最近一次保存的画笔的变形状态

         context.translate(); 变化坐标原点的变化(平移)

         context.rotate();      画笔旋转

        

转载于:https://www.cnblogs.com/Godfather-twq/p/11470979.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

canvas 简单用法 的相关文章

随机推荐

  • hp linux 禁用u盘启动,BIOS关闭Secure Boot(安全启动)方法大全(联想,华硕,DELL,HP等品牌)...

    在预装win10系统的电脑上BIOS中安全启动Secure Boot是默认开启的 如果你要安装其他系统 如Win7 Linux等系统那么需要关闭才可以 不然会无启动 这小编整理了联想 华硕 DELL HP等品牌关闭Secure Boot 安
  • 斗罗大陆解算法—魂环的最佳获取法

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 背
  • 关于kettle的一些使用笔记

    Kettle是一款国外开源的ETL工具 纯java编写 对于办公自动化来说也是一款神器 好了直入主题 这里只记录了kettle的一些常用的转换的组件作用和意义 并不含软件安装和使用过程 因为这个过程很简单 界面很友好 可以自己摸索 vers
  • Android9.0 iptables用INetd实现ip白名单的实现

    1 前言 在9 0的系统rom定制化开发中 在system中netd网络这块的产品需要中 会要求设置屏蔽ip地址之内的功能 liunx中iptables命令也是比较重要的 接下来就来在INetd这块实现ip白名单的的相关功能 就是在app中
  • 理解Linux下的进程和程序,分析fork、execve和进程切换

    本次实验从整体上理解进程创建 可执行文件的加载和进程执行进程切换 重点理解分析fork execve和进程切换 一 理解task struct数据结构 进程是处于执行期的程序以及它所管理的资源 如打开的文件 挂起的信号 进程状态 地址空间等
  • 经理人必看的十个管理网站

    经理人必看的十个管理网站 管理这玩艺远远看着如同象牙塔中的佛牙舍利 可观而不可玩 其实身在其中无非就是一张窗户纸 没有什么大不了的 管理这玩艺远远看着如同象牙塔中的佛牙舍利 可观而不可玩 其实身在其中无非就是一张窗户纸 没有什么大不了的 网
  • C# NPOI写excel文件,设置某个单元格为自动筛选

    https blog csdn net qq 40467670 article details 118102078 如标题所示 附上几行代码 HSSFWorkbook workbook new HSSFWorkbook 创建工作表 var
  • Uva 10474 Where is the Marble?(排序与检索)

    本题若掌握了sort 和lower bound 两个函数 就无难点 include
  • 通关6级之词汇(2021.05.29)

    前言 这篇词汇是通关6级系列第一篇文章 这篇文章和4级有大部分内容是一样的 所以如果学了4级的课程再学这个会很轻松 更多相关文章点击阅读 通关4级之阅读理解 通关4级之听力 通关4级之写作 通关4级之翻译 通关4级之词汇 通关6级之词汇 点
  • STM32 ST-LINK Utility程序烧录方法

    打开软件过后点击Target connect 出现以下界面表示STlink链接成功 如果出现没有检测到stlink的话 首先查看是否安装驱动程序 再重新插拔电脑usb口的stlink连接线 或者链接到主机后方的usb口 再重复以上步骤链接
  • Fire Net

    点击打开链接 Problem Description Suppose that we have a square city with straight streets A map of a city is a square board wi
  • 利用python对b站某GPT-4解说视频的近万条弹幕进行爬取、数据挖掘、数据分析、弹幕数量预测及情绪分类

    目录 一 利用Python爬取弹幕 二 利用几行代码直接生成词云 三 将弹幕属性和内容放入mysql当中 四 分析弹幕在视频各节点的数量 1 分析视频各个片段出现的弹幕数量 2 分析视频各大章节出现的弹幕数量 3 分析视频各小节出现的弹幕数
  • Learning Java language Fundamentals

    Chapter 2 Learning Java language fundamentals exercises 1 What is Unicode Unicode is a computing industry standard for c
  • 炒股新手技巧

    技巧一 关于止损和止赢的问题 我觉得很重要 止赢和止损的设置对股民来说尤为重要 有很多散户会设立止损 但是不会止赢 今天有必要和大家探讨一下 止损的设立大家都知道 设定一个固定的亏损率 到达位置严格执行 但是止赢 一般的散户都不会 为什么说
  • 用mybatis批处理, 编程式事务,CompletableFuture异步处理,多线程,线程池,list 分页,实现多张表大批量插入

    目录 概述 准备工作 创建数据库表 创建Java实体类 创建MyBatis映射文件和DAO接口 编写Java代码实现多张表大批量插入的功能 总结 1 概述 在实际的开发中 我们经常需要将大量的数据插入到数据库中 如果使用单条插入的方式 会导
  • vs2017 找不到源文件stdio.h解决方法

    这个问题网上又不少人提出 我的vs出现这个问题是因为我电脑重装系统了 原来的项目所采用windows SDK 已经发生了变化 因此解决的办法是 项目 gt 属性 gt 配置属性 gt 常规 gt windows SDK版本 将其换成你现在的
  • 【论文阅读】【因果关系】

    文章目录 因果理论的三个层级 张含望 因果推理在计算机视觉中的进展 浙江大学助理教授况琨 因果推理和稳定学习 因果理论的三个层级 该篇是本人入门因果 CV的随笔 期间会借鉴记录别人的理解 引用的部分会给出原始连接 如有侵权请联系我删除 Ju
  • EEPROM AT24C08的操作

    EEPROM应该是学习IIC总线时候最先接触的东西了 EEPROM的优点是可以随机存取 不像Flash存储器一样需要先擦除在能写入 而且擦写次数多存储时间长 但是缺点是存储空间非常有限 像我这用的Atmel的AT24C08只有8Kbit的存
  • Java异常机制Throwable

    Java中异常的概念以及处理异常 在Java程序运行期间出现了一个错误 这个错误可能是由于文件包含了错误信息 或者是由于网络连接出现问题 也可以是因为使用了无效的数组下标 或者是试图使用一个没有被赋值的对象引用而造成的 我们称这样的错误为异
  • canvas 简单用法

    canvas使用方法 1 首先要获取页面中的画布 var canvas document querySelector canvas 2 创建画笔 var context canvas getContext 2d 3 选择要绘画的方式 进行绘