视频课堂https://edu.csdn.net/course/play/7621

组合图形

绘制阴影

<canvas id="canvas" width="500" height="500"></canvas><script>function draw(){var c=document.getElementById("canvas");var ctx=c.getContext("2d");ctx.fillStyle="yellow";ctx.strokeStyle="yellow";var centerX=100;var centerY=100;var radius=50;var startAngle=0;var endAngle=2*Math.PI;//保存当前的绘图状态ctx.save();ctx.setTransform(1,0,-0.5,1,100,0);//开始绘图路径;ctx.beginPath();ctx.arc(centerX,centerY,radius,startAngle,endAngle,false);ctx.strokeStyle="white";ctx.stroke();ctx.fillStyle="rgba(0,0,0,0.2)";ctx.fill();//填充样式和填充完毕;ctx.restore();ctx.beginPath();ctx.arc(centerX,centerY,radius,startAngle,endAngle,false);ctx.stroke();ctx.fill();}window.addEventListener("load",draw(),true);</script>

<canvas id="canvas2" width="500" height="500"></canvas><script>function draw2(){var c=document.getElementById("canvas2");var ctx=c.getContext("2d");ctx.fillStyle="yellow";ctx.fillRect(0,0,100,100);ctx.fillStyle="blue";ctx.fill();ctx.globalCompositeOperation="source-over";//画圆;var centerX=100;var centerY=100;var radius=50;var startAngle=0;var endAngle=2*Math.PI;ctx.beginPath();ctx.arc(centerX,centerY,radius,startAngle,endAngle,false);ctx.fill();}window.addEventListener("load",draw2(),true);</script>

在绘制图形时,如果画布上已经有图形,就涉及到一个问题:两个图形如何组合。可以通过CanvasRenderingContext2D.globalCompositeOperation属性来设置组合方式

<canvas id="canvas3" width="500" height="500"></canvas><script>function draw3(){var c=document.getElementById("canvas3");var ctx=c.getContext("2d");ctx.fillStyle="yellow";ctx.save();//保存填充样式的颜色.ctx.shadowBlur=20;    //设置像素模糊值为20;ctx.shadowOffsetX=15;//横向值为15;ctx.shadowOffsetY=15;//纵向值为15;ctx.shadowColor="blue";ctx.fillRect(50,50,100,100);ctx.restore();ctx.fillRect(200,50,100,100);}window.addEventListener("load",draw3(),true);</script>

在绘制图形时,可以通过CanvasRenderingContext2D的一组属性设置图形的阴影

属  性  名

具 体 描述

shadowBlur

阴影的像素模糊值

shadowOffsetX

阴影在x轴上的偏移值

shadowOffsetY

阴影在y轴上的偏移值

shadowColor

阴影颜色值

Canvas3 绘图和重叠相关推荐

  1. MATLAB(5)绘图

    目录 线图 plot 线型.线段颜色及标记 线宽.标记点大小及颜色 绘图位置 figure函数 tiledlayout函数 标题 plot3 二维动图 创建动态线条对象:animatedline 向动 ...

  2. js插值计算_Python IDW插值计算及可视化绘制

    前面几篇推文我们分辨介绍了使用Python和R绘制了二维核密度空间插值方法,并使用了Python可视化库plotnine.Basemap以及R的ggplot2完成了相关可视化教程的绘制推文,详细内容如 ...

  3. emwin修改text字体颜色_Rggplot2 绘制带颜色条的相关性散点图

    一个月的备考终于结束了,公号的推文也会陆续进行原创推文制作,也希望大家继续支持哦!本期推文就介绍一篇关于使用ggplot2 绘制带有颜色映射的相关性散点图,本期涉及的知识点如下: stat_bin_2 ...

  4. R语言画图时常见问题

    关注微信公共号:小程在线 CSDN的更新和微信公共号都会持续更新,CSDN博客没有数据集的链接: 关注CSDN博客:程志伟的博客 1 如何在同一画面画出多张图? 修改绘图参数,如 par(mfrow ...

  5. 150分钟学会R语言与R常见问题解答

    序: 这篇文档内容的来源多样,既有来自于 R官方文档(包括 R intro,R data,R admin),也有来 自于互联网的 contributed documents:还有若干来自于 Capit ...

  6. iMeta | 华南农大陈程杰/夏瑞等发布TBtools构造Circos图的简单方法

    点击蓝字 关注我们 定制Circos图:使用TBtools,从数据准备到可视化 https://onlinelibrary.wiley.com/doi/full/10.1002/imt2.35 ●20 ...

  7. 热图(Heatmap)绘制(matplotlib与seaborn)

    热图是数据统计中经常使用的一种数据表示方法,它能够直观地反映数据特征,查看数据总体情况,在诸多领域具有广泛应用. 一:matplotlib绘制方法 1.基础绘制 热图用以表示的是矩阵数据,例如相关阵. ...

  8. 对tabcontrol控件增强,添加关闭按钮功能、呼吸灯标签闪烁功能、类QQ消息数量标签提示TIP

    在网上自绘tabcontrol的基础上增强,大部分代码写了注释. 关闭按钮的绘制思路:对padding属性修改以增加标签空白部分.在空白部分绘制十字,写个鼠标在十字区域点击关闭的事件以在适用控件时处理 ...

  9. 华南农大陈程杰/夏瑞TBtools最新文章在iMeta发表

    点击蓝字 关注我们 定制Circos图:使用TBtools,从数据准备到可视化 链接:https://onlinelibrary.wiley.com/doi/10.1002/imt2.35 引文:Ch ...

最新文章

  1. ToString()的格式设置
  2. 自然语言模型算法太杂乱?国产统一 AI 开源框架来了!
  3. VC基于MSCOMM控件串口通讯
  4. 机器学习经典算法实践_服务机器学习算法的系统设计-不同环境下管道的最佳实践
  5. linux 下的vi命令汇总
  6. 华为鸿蒙平板界面,华为工作人员曝光:鸿蒙OS正式版,平板手机将采用全新UI界面...
  7. 垃圾收集器(CMS收集器 , G1收集器…)
  8. Deep Retinex Decomposition for Low-LightEnhancement (2018 BMCV,含代码)
  9. eventFilter能进入dragEnter但没有event::drog
  10. 一文带你深入了解 SaaS(软件即服务) 的架构设计
  11. 同步异步+阻塞非阻塞-三述
  12. EPICS教程3 -- 输入/输出控制器(IOC)的创建
  13. 菜鸟、大牛和教主,三者的区别
  14. GZIP文件格式简介
  15. mimo节能模式smps_SMPS的完整形式是什么?
  16. android 活体识别人脸动作活体静默活体Demo源码实现讲解
  17. vue引入cesium
  18. 《口吃者的自我治疗》(3. 导致你口吃的根本原因)
  19. 京东企业采购服务升级 技术能力以软件形式输出
  20. 三星s6 android 5.1.1,三星S6将升级安卓5.1,支持无损出图

热门文章

  1. JDK10的新特性:var和匿名类
  2. Leecode 301. 删除无效的括号——Leecode每日一题系列
  3. CSS常用选择器、伪元素选择器、伪类选择器大全——响应式Web系列学习笔记
  4. IDEA 变量下面多了一根下划线
  5. 测试点2详解:1045 快速排序 (25分)——23行代码满分
  6. js(小程序或JavaScript)中[]、{}、()区别
  7. 10行代码AC——UVA 11538-Chess Queen(数学规律+数列,附详细讲解)
  8. python实现编译器连接器_Python连接器
  9. 部署LVS-DR(LVS+Keepalived)群集
  10. 三维球体换算到二维_AutoCAD三维入门,这些硬核干货要知道,看不懂建议备份收藏...