首页 > 其他分享 >canvas基本概念

canvas基本概念

时间:2023-03-14 14:34:34浏览次数:34  
标签:canvas dpr 路径 ctx 像素 绘制 基本概念

基本概念

1.路径

canvas的路径存放在路径列表里,在调用绘制命令的时候依次绘制。

2.beginPath

beginPath表示一段路径的开始,在使用beginPath以后,重新开始填充路径队列。

3.closePath

closePath表示闭合一段路径,闭合的节点是上一个moveTo的位置。

4.save和restore

save和restore可以避免绘制状态的频繁设置。

5.设备像素比

设备像素比是指浏览器像素和真实像素的大小比例,css用的是浏览器像素,canvas用的是真实像素,canvas像素经过css像素缩放后就会存在失真;为此,因该想办法抵消掉设备像素比:

 1 function getCtx(canvas) {
 2     const ctx = canvas.getContext("2d");
 3     const dpr = window.devicePixelRatio;
 4     const { width: w, height: h } = canvas.getBoundingClientRect();
 5     canvas.width = w * dpr;
 6     canvas.height = h * dpr;
 7     ctx.scale(dpr, dpr);
 8 
 9     return ctx;
10 }

6.填充规则

填充规则有evenodd和nonzero两种。假设有一个闭合路径C和一个点P,从点P画一条射线,路径穿过射线有正反两个方向,假设正向+1,反向-1;那么,evenodd表示结果为奇数就填充,nonzero表示结果不为零就填充。

7.绘制习惯

一部分绘制状态会在前一次的基础上叠加,例如translate、rotate等;因此最好的做法是,每一次绘制都先save,绘制完毕再restore:

1 ctx.save();
2 ctx.beginPath();
3 ...
4 ctx.restore();

8.重叠规则

重叠规则主要有source类型和destination类型,分别有四种显示方式:over、atop、in、out,例如source-over、destination-over;还有一个lighter,表示颜色合并,比如red和blue的交界处是pink。

9.略

标签:canvas,dpr,路径,ctx,像素,绘制,基本概念
From: https://www.cnblogs.com/aurora-power/p/17214812.html

相关文章

  • 使用js的html2canvas截图div并下载
    暂未完赛,请继续加油吧-测试截图```functiongetScreenShot(){html2canvas(document.querySelector("#canvas")).then(canvas=>{//docume......
  • wxml2canvas爬坑之路
    效果图:  前提:公司要求生成一分报告并转为图片并保存,之前用canvas画过,但这次是在不想用canvas一点点画了,再往上找了n久,爬了n多坑,终于搞出来了 插件:wxml2canvas......
  • canvas实现简单的粒子下落效果
     1.创建Canvas元素,并获取其上下文在实现粒子跳动动画的过程中,第一步需要创建一个Canvas元素,并获取其上下文。Canvas元素是HTML5中的一个重要组件,它提供了一个......
  • Linux进程与线程的基本概念及区别
    前言假设你正在玩一款在线多人游戏,在游戏中,有多个角色需要进行不同的操作,例如攻击、移动、释放技能等等。接下来,我们用玩游戏的例子,来解释进程和和线程的概念,以及进程和......
  • visual stdio基本概念辨析
    项目-属性-vc++目录-包含目录:“包含目录”是指用于引用头文件的目录列表。这些目录包括编译器需要查找以解决在源代码中引用的头文件的路径。项目-属性-vc++目录-库......
  • openGL之glsl入门1--基本概念
    从零开始学习openGL与GLSL(没有计算机图像学基础),开始确实挺费劲,网上的资料虽然多,但不系统,例子也不全,openGL还好(这里指的是v2.0之前的版本,使用glBegin(),glEnd()方式绘制),完......
  • Rxjs编程系列-基本概念
    Rxjs就是利用javascript实现了响应式编程的概念,利用监听流的模式处理异步操作。1.函数响应式编程函数式编程声明式纯函数数据不可变性响应式编程通过可监听流......
  • 视频直播源码,前端canvas动态验证码实现
    视频直播源码,前端canvas动态验证码实现  //生成一个随机数  constrandomNum=(min:number,max:number)=>{    returnMath.floor(Math.random()*......
  • 操作系统——基本概念
    1操作系统的基本概念1.1操作系统的概念、功能和目标1.1.1操作系统的定义操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源......
  • 数据仓库基本概念
    数仓分层都分哪些层?一般来说,数据仓库我们可以分为如下5层:关于数仓分层,不同的公司分的层数是不一样的,并且数仓的每一层的命名也没有一个统一的标准,比如这一层就叫这个名......