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

【第2章 绘制】2.6 阴影

文章目录

  • 前言
  • 示例效果
  • 示例代码


前言

在 canvas 之中进行绘制时,不管要画的是图形、文本,还是图像,都可以通过修改绘图环境中的如下4个属性值来指定阴影效果:

  • shadowColor:CSS3 格式的颜色。
  • shadowOffsetX:从图形或文本到阴影的水平像素偏移。
  • shadowOffsetY:从图形或文本到阴影的垂直像素偏移。
  • shadowBlur:一个与像素无关的值。该值被用于高斯模糊方程之中,以便对阴影进行模糊化处理。

如果满足以下条件,那么使用 Canvas 的绘图环境对象就可以绘制出阴影效果了:

  1. 指定的 shadowColor 值不是全透明的。
  2. 在其余的阴影属性之中,存在一个非0的值。

如果想要禁用阴影效果,进行如下设置:

context.shadowColor = undefind
context.shadowOffsetX = 0
context.shadowOffsetY = 0
context.shadowBlur = 0

示例效果

应用程序中前2个矩形阴影都是正偏移,第3个矩形阴影是负偏移。
在这里插入图片描述


示例代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>2-7-使用阴影效果来制作具有深度感的按钮</title></head><body><canvas id="canvas" width="600" height="300"> canvas not supported </canvas><script>const canvas = document.getElementById('canvas'),context = canvas.getContext('2d')const SHADOW_COLOR = 'rgba(0, 0, 0, 0.7)'const setIconShadow = () => {context.shadowColor = SHADOW_COLORcontext.shadowOffsetX = 2context.shadowOffsetY = 2context.shadowBlur = 5}const setSelectedIconShadow = () => {context.shadowColor = SHADOW_COLORcontext.shadowOffsetX = 4context.shadowOffsetY = 4context.shadowBlur = 5}const setInnerIconShadow = () => {context.shadowColor = SHADOW_COLORcontext.shadowOffsetX = -4context.shadowOffsetY = -4context.shadowBlur = 5}setIconShadow()context.strokeStyle = 'black'context.strokeRect(20, 20, 100, 100)setSelectedIconShadow()context.strokeRect(140, 20, 100, 100)setInnerIconShadow()context.strokeRect(260, 20, 100, 100)</script></body>
</html>

http://www.xdnf.cn/news/688609.html

相关文章:

  • 基于stm32LORA无线抄表系统仿真
  • 人工智能在智能建筑中的创新应用与未来趋势
  • 将docker容器保存为镜像,让后将镜像打包保存到本地
  • WPF的基础控件:布局控件(StackPanel DockPanel)
  • React+Antd全局加载遮罩工具
  • 2. 数据结构基本概念 (2)
  • LLM 对齐新范式:深入解析 DPO (Direct Preference Optimization) 的原理与实践
  • Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
  • 180 度 = π 弧度
  • 2025吉林ccpc【部分题解】
  • c++第三天(对象与构造函数)
  • ICDMC 2025:创新媒体模式,迎接数字时代的挑战
  • Redission学习专栏(一):快速入门及核心API实践
  • CORS跨域资源共享解析
  • 算法刷题记录:滑动窗口经典题目解析
  • 【大模型原理与技术-毛玉仁】第三章 Prompt工程
  • web-css
  • 20250528-C#知识:函数简介及函数重载
  • 外部访问可视化监控 Grafana (Windows版本)
  • 扇形 圆形 面积公式
  • 如何在WordPress中选择最佳Elementor主题:专家指南
  • 前端大文件上传-断点续传
  • 影刀RPA-17- 列表练习
  • 使用 Shell 脚本实现 Spring Boot 项目自动化部署到 Docker(Ubuntu 服务器)
  • 如果是在服务器的tty2终端怎么查看登陆服务器的IP呢
  • 《vue.js快速入门》链接摘抄整理
  • 深入理解SQLMesh中的Lookback、Forward-Only和Auto-Restatement特性
  • 【GlobalMapper精品教程】095:如何获取无人机照片的拍摄方位角
  • Redis keydb dragonfly skytable
  • 《全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别》