前端Canvas入门——一些注意事项

创建渐变的三种方法:

createLinearGradient() - 线性渐变

createRadialGradient() - 径向渐变(放射性渐变)

createConicGradient() - 锥形渐变

这三种的核心观点都是:

创建一个gradient对象,然后调用addColorStop()方法给这个对象添加渐变色。

区别就是里面的形参数量、含义不一样,需要注意。

有个特别需要注意的点:

createPattern()  - 图片画笔

你可以理解为这个方法就是创建一个新的画笔工具,然后使用这个工具去进行绘画。

举个例子:

        let img = new Image()img.src = './images/5.png'img.onload = () => {// 创建重复元素对象 - repeat是CSS中的内容let png = ctx.createPattern(img, 'repeat')// 类似于一个画笔ctx.fillStyle = pngctx.fillRect(0, 0, 400, 400)}

这几个方法你可以想象成创建一个画笔。

不同的是,有些是创建的时候就限制了画笔的大小。

比如说,createLinerGradient()里面就有关于生效的距离:

        const gradient = ctx.createLinearGradient(0, 0, 600, 400)gradient.addColorStop(0, 'red')gradient.addColorStop(0.5, 'yellow')gradient.addColorStop(1, 'blue')ctx.moveTo(0, 0)ctx.lineTo(400, 400)ctx.lineWidth = 30ctx.strokeStyle = gradientctx.stroke()

 

从上面的例子可以看出,如果你的线条长度小于渐变色的宽度(上文中渐变色的宽度是600,但是线条的宽度是400),那么渐变色有可能显示不全——丢失部分/全部蓝色渐变效果。

这是因为在gradient对象方法——addColorStop(0, '颜色')里面的0是指向量的长度,它的长度是这个向量跟下一个向量之间的长度。

比如说例子中的就是0-0.5之间就是从红色渐变到黄色,而0.5-1之间就是从黄色渐变到蓝色。


而有些则是不限制大小,只看你后续使用画笔来干什么。

比如说,例子1中的createPattern()就是看后续调用fillRect()的大小。

但如果你使用的是stroke()方法,就只会剩下一个边框:

今天就到这,bye~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java】力扣 合并两个有序链表

文章目录 题目描述题目链接思路代码 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题目链接 21. 合并两个有序链表 思路 先定义一个哨兵节点dummy,为了方便解题 然后定义一个节点pre&#xff0…

paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境

1.安装英伟达显卡驱动 首先需要到NAVIDIA官网去查自己的电脑是不是支持GPU运算。 网址是:CUDA GPUs | NVIDIA Developer。打开后的界面大致如下,只要里边有对应的型号就可以用GPU运算,并且每一款设备都列出来相关的计算能力(Compu…

模板方法模式的实现

1. 引言: 交易管理系统中的模板方法模式 之前做过一个交易管理系统,其中有一个核心模块是“交易流程管理”,该模块需要处理不同类型的交易,比如期货交易、期权交易和股票交易。在构建交易管理系统的过程中,我们面临了一个核心挑战…

为二进制文件添加.gnu_debugdata调试信息

前言 在使用gcc/g编译二进制文件过程中,如果添加了-g参数,编译出来的二进制文件会带有debug信息,供调试使用。但是debug信息往往占用空间很大,导致二进制文件太大,在发布到生产环境时,一般会去掉调试信息&…

(南京观海微电子)——电容应用及选取

什么是电容器? 电容器是一种在内部电场中储存能量的电子器件。它与电阻器、电感器一样,都是基本的无源电子元件。所有电容器都具有相同的基本结构,两块导电极板中间由绝缘体隔开,该绝缘体称为电介质,可在施加电场后发…

时间轮算法理解、Kafka实现

概述 TimingWheel,时间轮,简单理解就是一种用来存储若干个定时任务的环状队列(或数组),工作原理和钟表的表盘类似。 关于环形队列,请参考环形队列。 时间轮由两个部分组成,一个环状数组&…

一文了解MySQL的表级锁

文章目录 ☃️概述☃️表级锁❄️❄️介绍❄️❄️表锁❄️❄️元数据锁❄️❄️意向锁⛷️⛷️⛷️ 介绍 ☃️概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外&#xff0…

Coze:如何使用团队空间?

你好,我是三桥君 团队空间,是一个允许我们组建团队并共享机器人、插件等资源的功能。 好的,让我们开始创建一个团队。我们将这个团队命名为“三桥君AI”,并在描述中也填写“这里是关于“三桥君AI”团队的描述”。点击确定后&…

VMware_centos8安装

目录 VMware Workstation Pro的安装 安装centos VMware Workstation Pro的安装 正版VMware 17百度网盘下载链接 (含秘钥) 链接:https://pan.baidu.com/s/16zB-7IAACM_1hwR1nsk12g?pwd1111 提取码:1111 第一次运行会要求输入秘钥 秘钥在上边的百度网盘…

【CUDA|CUDNN】安装

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 显卡驱动安装参考之前的文章 cuda、cudnn 安装 1. cuda 安装 访问https://developer.nvidia.com/cuda-toolkit-archive 选择需要的版本:h…

Selenium使用注意事项:

find_element 和 find_elements 的区别 WebDriver和WebElement的区别 问题: 会遇到报错: selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector",&…

双管正激小功率电源的设计与实现

正激变换由于拓扑简单, 升/ 降压范围宽, 广泛应用于中小功率电源变换场合。正激变换器的输出功率不象反激变换器那样受变压器储能的限制, 因此输出功率较反激变换器大, 但是正激变换器的开关管电压应力高, 为两倍输入电…

php探针

php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。 下面就分享下我是怎样利用php探针来探测服务器网站空间速度、性能、安全功能等。 具体步骤如下: 1.从网上下…

视频监控汇聚平台:通过SDK接入大华DSS视频监控平台的源代码解释和分享

目录 一、视频监控汇聚平台 1、概述 2、视频接入能力 3、视频汇聚能力 二、大华DSS平台 1、DSS平台概述 2、大华DSS平台的主要特点 (1)高可用性 (2)高可靠性 (3)易维护性 (4&#xf…

【Mongodb-04】Mongodb聚合管道操作基本功能

Mongodb系列整体栏目 内容链接地址【一】Mongodb亿级数据性能测试和压测https://zhenghuisheng.blog.csdn.net/article/details/139505973【二】springboot整合Mongodb(详解)https://zhenghuisheng.blog.csdn.net/article/details/139704356【三】亿级数据从mysql迁移到mongodb…

SpringCloud第三篇(服务中心与OpenFeign)

p 文章目录 一、服务中心二、Nacos注册中心 一、服务中心 在上一章我们实现了微服务拆分,并且通过Http请求实现了跨微服务的远程调用。不过这种手动发送Http请求的方式存在一些问题。 试想一下,假如商品微服务被调用较多,为了应对更高的并发…

如何把pickle文件转为txt格式

import pickle import json import argparsedef pickle_to_text(pickle_file, output_file):# 加载pickle文件with open(pickle_file, rb) as f:data pickle.load(f)# 将数据转换为JSON格式的字符串data_str json.dumps(data, defaultlambda o: o.__dict__, indent4)# 将字符…

git 如何查看 commit 77062497

在Git中,要查看特定commit(如77062497)的详细信息,你可以使用git show命令。如果77062497是一个完整的commit哈希值(在Git中,commit哈希值通常是40位的十六进制数),你可能需要输入完…

【产品应用】一体化步进伺服电机在板材封边机中的应用

随着现代工业技术的快速发展,封边机作为木材加工行业的重要设备,其精度、效率和稳定性已成为衡量设备性能的重要指标。 近年来,一体化步进伺服电机因其高精度、高效率和强稳定性等特点,在封边机中得到了广泛应用。 本文将详细介绍…

1.5.1抽象java入门

前言: 1.5.0版本中,我们熟练使用Git三个可视化操作(签出,提交,对比),再加上1.4.0版本的新建,总计使用四个Git可视化操作;对java编程的学习,总结,…