热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

html5Canvas实现画未闭合的路径及渐变色的填充方法

这篇文章主要介绍了关于html5Canvas实现画未闭合的路径及渐变色的填充方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
这篇文章主要介绍了关于html5 Canvas实现画未闭合的路径及渐变色的填充方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一般绘图的方式有两种,即填充和描边,前面的文章已经讲了描边的方法stroke,本文就讲一下Canvas中填充图形的方法 一般绘图的方式有两种,即填充和描边,前面的文章已经讲了描边的方法stroke,本文就讲一下Canvas中填充图形的方法。
填充即fill(),很直白吧?而且和strokeStyle表示描边样式一样,fillStyle即表示填充样式。
ctx.fillStyle = '颜色';默认的填充样式是不透明的黑色
提问:未闭合的路径可以填充吗?
可以。Canvas会从你当前路径的终点直接连接到起点,然后填充。如图:

var linear = ctx.createLinearGradient(100,100,200,100); 
linear.addColorStop(0,'#fff'); 
linear.addColorStop(0.5,'#f0f'); 
linear.addColorStop(1,'#333');

这里用了3个addColorStop,即为渐变条加上了3个颜色。
注意:addColorStop的位置参数,永远是介于0-1之间的数字,可以是两位小数,表示百分比。他没法接收’3px’这样的参数。
这时候,我们就可以填充渐变色了,但我们必须先把定义好的渐变赋给fillStyle.

var linear = ctx.createLinearGradient(100,100,200,100); 
linear.addColorStop(0,'#fff'); 
linear.addColorStop(0.5,'#f0f'); 
linear.addColorStop(1,'#333'); 
ctx.fillStyle = linear; //把渐变赋给填充样式 
ctx.fillRect(100,100,100,100); 
ctx.stroke();

linear.addColorStop(0.99,'#333'); 
linear.addColorStop(1,'rgba(51,51,51,0)');

依照前面的计划,我再建一个倾斜的线性渐变试试。只需要改createLinearGradient的参数即可.

var linear = ctx.createLinearGradient(100,100,200,200);

效果如图:

var radial = ctx.createRadialGradient(55,55,10,55,55,55); //重合的圆心坐标 
radial.addColorStop(0,'#fff'); 
radial.addColorStop(0.5,'#ff0'); 
radial.addColorStop(0.9,'#555'); 
radial.addColorStop(1,'#f00');

以上就是html5 Canvas实现画未闭合的路径及渐变色的填充方法的详细内容,更多请关注其它相关文章!


推荐阅读
  • [转] JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别
    ECMAScript将对象的属性分为两种:数据属性和访问器属性。每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过for-in循环 ... [详细]
  • 经过一段时间的学习与实践,我已经使用D3.js完成了一些项目。鉴于中文D3教程稀缺,而英文资料虽丰富却对英语水平有一定要求,特此撰写一系列D3实战文章,旨在通过具体案例(如统计数据可视化、地图信息展示等)分享D3的使用技巧,促进技术交流。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 本文介绍了一种在Win10 UWP应用中实现根据数值动态改变颜色的控件的方法。通过将椭圆的颜色与整数绑定,并利用值转换器来实现颜色的渐变效果。 ... [详细]
  • 面临考试压力,急需解决四个编程问题,包括实现乒乓球的动态效果、计算特定日期是一年的第几天、逆序输出数字以及创建弹出菜单。每个问题的解决都能在TC3.0环境中获得50分。 ... [详细]
  • 本文详细介绍了Flutter中的Stack、IndexedStack以及Positioned三个布局组件的使用方法和应用场景。Stack允许开发者以堆叠的方式展示多个子组件;IndexedStack则提供了一种仅显示指定索引子组件的方法;而Positioned则是Stack的子组件,用于精确定位子组件的位置。 ... [详细]
  • UE4 中 Decal 贴花在静态光照下的渲染问题及解决方案
    本文探讨了 UE4 中 Decal 贴花在静态光照条件下无法正确渲染的问题,分析了其原因,并提供了针对不同平台(PC 和移动设备)的有效解决策略。特别关注了半透明材质贴花的特殊处理方法。 ... [详细]
  • 使用DetailsView控件实现数据分页显示
    本文介绍了如何利用DetailsView控件结合数据源,在ASP.NET页面中实现数据的分页显示功能。 ... [详细]
  • C# WPF 打字射击游戏开发
    介绍了一个基于C#和WPF技术的简单打字射击游戏的实现方法,包括字母的生成、移动、消除以及基本的游戏界面设计。 ... [详细]
  • Flutter入门指南:实现自动关闭的对话框与提示
    本文为Flutter系列教程的一部分,专注于讲解如何在Flutter应用中实现自动关闭的对话框和提示。通过具体的代码示例,帮助开发者掌握SnackBar、BottomSheet和Dialog的使用方法。 ... [详细]
  • 本文探讨了在Android应用程序开发过程中动态管理Fragment的方法,包括动态添加和切换Fragment,以及如何实现平滑的过渡动画。文章通过一个具体的案例——订单管理系统,详细介绍了实现步骤和技术细节。 ... [详细]
  • KNN算法在海伦约会预测中的应用
    本文介绍如何使用KNN算法进行海伦约会的预测。我们将从数据导入、数据预处理、数据可视化到最终的模型训练和测试进行全面解析。 ... [详细]
  • 根据源图RECT、目标Rect计算缩放后(不放大),新的显示Rect序列化CImageCImage复制根据源图RECT、目标Rect计算缩放后(不放大),新的显示Rectstati ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 纵坐标|据点_菜菜的sklearn课堂笔记支持向量机线性SVM决策过程的可视化
    纵坐标|据点_菜菜的sklearn课堂笔记支持向量机线性SVM决策过程的可视化 ... [详细]
author-avatar
longxi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有