当前位置: 首页 > news >正文

前端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.lryc.cn/news/399176.html

相关文章:

  • 移动互联安全扩展要求测评项
  • 【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会
  • 【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异
  • 【邀请函】庭田科技邀您第五届中国国际复合材料科技大会
  • win32:第一个窗口程序-应用程序入口点(part.6)
  • c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决
  • ext_errno:拓展errno
  • 【CUDA】 Trust基本特性介绍及性能分析
  • 颈肩肌筋膜炎中医治疗
  • Java 通配符 在短信发送之中 通配符参数动态获取解决方案
  • Mybatis-Plus中LambdaQueryWrapper
  • C++ 入门05:类和对象
  • 4G LTE教程
  • C++:哈希表
  • 自己动手写一个滑动验证码组件(后端为Spring Boot项目)
  • keepalive脑裂
  • STM32Cubemx配置生成 Keil AC6支持代码
  • Perl基础入门指南:从零开始掌握Perl编程
  • Mybatis SQL注解使用场景
  • Dataset for Stable Diffusion
  • 近期matlab学习笔记,学习是一个记录,反复的过程
  • Elasticsearch7.5.2 常用rest api与elasticsearch库
  • Autosar Dcm配置-0x28服务ComControl-基于ETAS软件
  • 平安养老险厦门分公司:提升金融服务,发挥金融力量
  • 【开源合规】开源许可证风险场景详细解读
  • Redis持久化RDB,AOF
  • 【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
  • mvcc 速读
  • 美容仪维修过程记录
  • STM32入门开发操作记录(一)——新建工程