首页 > 其他分享 >Canvas 图形-01:Canvas介绍、Canvas API

Canvas 图形-01:Canvas介绍、Canvas API

时间:2023-01-15 14:11:21浏览次数:46  
标签:Canvas 01 样式 路径 canvas API 绘制

Canvas介绍、Canvas API

Canvas介绍

Canavs是HTML5规范的一部分,需要使用 <canvas></canvas>在HTML中标注使用。实际操作的是canvas的context。
Context2D是基于状态的,拥有一个状态机,当绘制时读取状态(路径、样式等),绘制图形,因此本质上是对状态进行操作(改变状态)。

第一个canvas,Hello World

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>直线</title>
    <script>
      window.onload = function () {
        const cnv = document.getElementById("app");
        const ctx = cnv.getContext("2d");
        ctx.fillText("Hello World", 100, 75);
      };
    </script>
  </head>

  <body>
    <canvas id="app" width="200" height="150"></canvas>
  </body>
</html>

  1. 获取canvas DOM元素
  2. 使用getContext("2d")获取绘图上下文
  3. 调用Context2D API绘制图形

Canvas API

画图

API 用途
lineTo 画直线
rect、fillRect、strokeRect 画矩形
arc 画圆形
arcTo 路径上画圆弧
ellipse 画椭圆
fillText 填充文字
strokeText 描边文字
bezierCurveTo 贝塞尔曲线
quadraticCurveTo 三次贝塞尔曲线
drawImage 绘制图像

功能

API 用途
save 存储状态
restore 恢复状态
clip 裁剪路径
beginPath 开始路径
closePath 闭合路径

属性

属性 用途

样式风格

对于fillStyle和strokeStyle(填充样式和描边样式),可以设置为颜色、图案(Pattern)、渐变

  1. 线性渐变
    createLinearGradient
  2. 径向渐变
    createRadialGradient
  3. 图案
    createPattern

全局配置

globalAplha:设置全局透明度
globalCompositeOperation:设置全局混合模式

标签:Canvas,01,样式,路径,canvas,API,绘制
From: https://www.cnblogs.com/zgblogs/p/17053375.html

相关文章

  • SQL238 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
    SQL238将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005题目描述将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实......
  • UG提示api-ms-win-crt-runtime-l1-1-0.dll丢失的终极解决办法
    出现api-ms-win-crt-runtime-l1-1-0.dll丢失原因    应该是用户操作系统的原因,笔者安装了两台电脑,一台是win7sp1版本的,没有出现api-ms-win-crt-runtime-l1-1-0.dl......
  • POI2015
    KUR首先设\(z=ai+b\),考虑求出\(z\)的范围。假设序列的第\(j\)位为\(1\),则\(z+a(j-1)\geqp\),即将\([p,n)\)区间向左循环位移\(a(j-1)\),然后对所有这样的区间取交。由于循......
  • 【题解】P5692 [MtOI2019]手牵手走向明天
    春节前做大分块是什么奇妙传统吗……这个题好想是好想,但是写起来就是另外一回事了……思路分块。第四分块加强版。区间查询,根号分治做法寄了。看到合并颜色可以想到......
  • x210-2023-01-14
    1、尝试过在.c文件中补充void__aeabi_unwind_cpp_pro(void){}空函数,但是无效,后采用编译.o过程加入-nostdlib可以成功。 2、前一次编译出错,已经生成错误的.o文件没有mak......
  • 话费充值API接口
    ―、引言1.1 文档概述本文档提供话费充值接口规范说明,提供一整套的完整的接入示例(http接口)供商户参考,可以帮助商户开发人员快速完成接口开发与联调,实现与话费充值系......
  • 永恒之蓝(MS17-010)的复现
     漏洞介绍:MS17-010又称永恒之蓝漏洞,利用Windows系统的SMB漏洞可以获取系统最高权限。最有名的安全事件就是不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒。攻击......
  • 静默安装Oracle11gR2 [FATAL] [INS-32015]报错
    Centos6.5静默安装oracle11gR2[oracle@oracledbdatabase]$./runInstaller-silent-force-responseFile/opt/database/response/db_install.rspStartingOracleU......
  • 怎么取消 Windows Server 2012 RDP 限制每个用户只能进行一个会话
    在WindowsServer2008/2008R2上,如果希望多个远程用户使用同一个账号同时访问服务器的RemoteDesktop(RDP),只需通过管理工具-远程桌面下的“远程桌面会话主机配置”进行......
  • Windows Server 2012 R2 无法启用Microsoft .NET Framework 3.5 功能
    安装安全更新2966827或2966828之后,WindowsServer2012R2、WindowsServer2012、Windows8.1或Windows8上无法启用Microsoft.NETFramework3.5功能解决方法,把......