HTML5 canvas基本绘图之绘制阴影效果


Posted in HTML / CSS onJune 27, 2016

<canvas></canvas>是HTML5中新增的标签,用于绘制图形,实际上,这个标签和其他的标签一样,其特殊之处在于该标签可以获取一个CanvasRenderingContext2D对象,我们可以通过JavaScript脚本来控制该对象进行绘图。

<canvas></canvas>只是一个绘制图形的容器,除了id、class、style等属性外,还有height和width属性。在<canvas>>元素上绘图主要有三步:

1.获取<canvas>元素对应的DOM对象,这是一个Canvas对象;
2.调用Canvas对象的getContext()方法,得到一个CanvasRenderingContext2D对象;
3.调用CanvasRenderingContext2D对象进行绘图。

阴影绘制

  • shadowColor 设置或返回用于阴影的颜色。
  • shadowBlur 设置或返回用于阴影的模糊级别(数值越大越模糊)。
  • shadowOffsetX 设置或返回阴影与形状的水平距离。
  • shadowOffsetY 设置或返回阴影与形状的垂直距离。

我们为之前绘制的五角星添加一下阴影

JavaScript Code复制内容到剪贴板
  1. var canvas = document.getElementById("canvas");   
  2.    var context = canvas.getContext("2d");   
  3.    context.beginPath();   
  4.    //设置是个顶点的坐标,根据顶点制定路径   
  5.    for (var i = 0; i < 5; i++) {   
  6.        context.lineTo(Math.cos((18+i*72)/180*Math.PI)*200+200,   
  7.                        -Math.sin((18+i*72)/180*Math.PI)*200+200);   
  8.        context.lineTo(Math.cos((54+i*72)/180*Math.PI)*80+200,   
  9.                        -Math.sin((54+i*72)/180*Math.PI)*80+200);   
  10.    }   
  11.    context.closePath();   
  12.    //设置边框样式以及填充颜色   
  13.    context.lineWidth="3";   
  14.    context.fillStyle = "#F6F152";   
  15.    context.strokeStyle = "#F5270B";   
  16.    context.shadowColor = "#F7F2B4";   
  17.    context.shadowOffsetX = 30;   
  18.    context.shadowOffsetY = 30;   
  19.    context.shadowBlur = 2;   
  20.    context.fill();   
  21.    context.stroke();   

效果如下:

HTML5 canvas基本绘图之绘制阴影效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
浅析两列自适应布局的3种思路
May 03 HTML / CSS
玩转CSS3色彩
Jan 16 HTML / CSS
css3中新增的样式使用示例附效果图
Aug 19 HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
Nov 11 HTML / CSS
初探CSS3中的calc()功能
Jul 14 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
May 19 HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
Jun 25 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
Aug 23 HTML / CSS
HTML5 canvas基本绘图之绘制五角星
Jun 27 HTML / CSS
深入理解CSS 中 transform matrix矩阵变换问题
Aug 30 HTML / CSS
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
Nov 11 HTML / CSS
CSS中使用grid布局实现一套模板多种布局
Jul 15 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 #HTML / CSS
深入剖析webstorage[html5的本地数据处理]
Jul 11 #HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 #HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
Jul 19 #HTML / CSS
HTML5 Web 存储详解
Sep 16 #HTML / CSS
HTML5移动开发图片压缩上传功能
Nov 09 #HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
Nov 16 #HTML / CSS
You might like
php中常用字符串处理代码片段整理
2011/11/07 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python 队列详解及实例代码
2016/10/18 Python
Python检测生僻字的实现方法
2016/10/23 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
python实现多张图片拼接成大图
2019/01/15 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
在宿舍喝酒的检讨书
2014/09/28 职场文书
学期个人工作总结
2015/02/13 职场文书
建党伟业电影观后感
2015/06/01 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL