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

《HTML5 canvas开发详解(第2版)》——2.2 基本矩形

本节书摘来自异步社区《HTML5 canvas开发详解(第2版)》一书中的第2章,第2.2节,作者: 【美】Steve Fulton , Jeff Fulton 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 基本矩形

首先,从最简单、最原始的Canvas内建的几何形状——矩形开始。在Canvas上,绘制基本矩形有3种不同的方式:填充、描边和清除。创建矩形(或者其他形状)还可以使用路径,下节将会讲到。

实现这3种操作的API函数如下。

fillRect(x,y,width,height)

在位置(x, y)处以宽为width、高为height绘制一个填充的矩形。

strokeRect(x,y,width,height)

在位置(x, y)处以宽为width、高为height绘制一个矩形边框。它需要使用当前的strokeStyle、lineWidth、lineJoin以及miterLimit设置。

clearRect(x,y,width,height)

在位置(x, y)处以宽为width、高为height,清除指定区域并使其完全透明(使用透明黑作为颜色)。

在使用这些功能之前,需要预先设置好Canvas绘图时所需的填充或描边的样式。

设置这些样式最基本的方法就是使用24位的十六进制字符串。下面是第一个演示的示例。

context.fillStyle = '#000000';
context.strokeStyle = '#ff00ff';

在例2-1中,填充样式简单设为RGB黑色,描边样式设为传统的紫色,结果如图2-1所示。

例2-1 基本矩形

function drawScreen(){
   context.fillStyle = '#000000';
   context.strokeStyle = '#ff00ff';
   context.lineWidth = 2;
   context.fillRect(10,10,40,40);
   context.strok\eRect(0, 0,60,60);
   context.clearRect(20,20,20,20);
}


<a href=https://yqfile.alicdn.com/9bbf10e67bd34af9ece9859128d5fe9d926554b9.png" >

相关文章:

  • 《推荐系统:技术、评估及高效算法》一1.2 推荐系统的功能
  • 《jQuery Cookbook中文版》——1.11 删除DOM元素
  • 移动App性能测评与优化1.3 新问题的进一步挖掘
  • 《Python自然语言处理》——第1章 语言处理与Python 1.1 语言计算:文本和词汇...
  • 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.5节Android应用程序运行的机制...
  • 《精通软件性能测试与LoadRunner最佳实战》—第2章2.2节性能测试需求分析
  • 《Windows Server 2012活动目录管理实践》——2.5 常见问题
  • 《SQL初学者指南(第2版)》——第2章 基本数据检索
  • 《CCNA学习指南:Cisco网络设备互连(ICND2)(第4版)》——1.1节理解VLAN 和VLAN Trunk 及排除相关故障...
  • 《Redis入门指南》一4.6 节省空间
  • 《深入理解JavaScript》——2.8 结论
  • 数据挖掘与数据化运营实战. 2.2 统计分析与数据挖掘的主要区别
  • 4个可以发送完整电子邮件的命令行工具
  • 《社会智能与综合集成系统》—第2章2.1节机器智能的发展
  • 《树莓派实战秘籍》——1.17添加重启按钮
  • 自己简单写的 事件订阅机制
  • 【技术性】Search知识
  • 2017届校招提前批面试回顾
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • C++11: atomic 头文件
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS实用技巧干货
  • java中的hashCode
  • JWT究竟是什么呢?
  • Linux CTF 逆向入门
  • nodejs实现webservice问题总结
  • 测试如何在敏捷团队中工作?
  • 讲清楚之javascript作用域
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端面试题总结
  • 我建了一个叫Hello World的项目
  • 在Mac OS X上安装 Ruby运行环境
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #git 撤消对文件的更改
  • (3)STL算法之搜索
  • (function(){})()的分步解析
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (利用IDEA+Maven)定制属于自己的jar包
  • (一)插入排序
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (轉貼) UML中文FAQ (OO) (UML)
  • .Net Winform开发笔记(一)
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @private @protected @public
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [android] 练习PopupWindow实现对话框
  • [Django 0-1] Core.Checks 模块
  • [EWS]查找 文件夹
  • [ITIL学习笔记]之事件管理(2)