Javascript高级编程学习笔记(86)—— Canvas(3)绘制矩形

时间:2023-01-06 18:07:18

绘制矩形

矩形是唯一一种可以直接在2D上下文中绘制的形状.

与矩形有关的方法包括:

  • fillRect()
  • strokeRect()
  • clearRect()

上述方法都接收四个参数:

  1. 绘制矩形的 X 坐标
  2. 绘制矩形的 Y 坐标
  3. 矩形的宽度
  4. 矩形的高度

这些参数的单位都是像素

首先,fillRect() 方法在 canvas 中绘制的矩形会填充指定颜色

填充的颜色通过上一篇文章介绍的 fillStyle 指定,如:

var drawing = document.getElementById('drawing');

if(drawing.getContext){
var context = drawing.getContext('2d'); // 绘制红色矩形
context.fillStyle = "#ff0000";
context.fillRect(10,10,50,50); // 绘制半透明蓝色矩形
context.fillStyle = 'rgba(0,0,255,0.5)';
context.fillRect (30,30,50,50);
}

strokeRect() 方法在画布上绘制矩形会使用指定的颜色描边

描边的颜色由 strokeStyle 指定,如:

var drawing = document.getElementById('drawing');

if(drawing.getContext){
var context = drawing.getContext('2d'); // 绘制红色描边矩形
context.strokeStyle = "#ff0000";
context.strokeRect(10,10,50,50); // 绘制半透明蓝色描边矩形
context.strokeStyle = 'rgba(0,0,255,0.5)';
context.strokeRect (30,30,50,50);
}

描边线条的宽度由 lineWidth 属性指定,该属性的值为任意整数

而描边线条末端的形状则可以通过 lineCap 属性控制,支持的值有 "butt"(平头) "round"(圆头) "square"(方头)

此外,线条相交的方式可以通过 lineJoin 属性控制,支持的值有: "round"(圆交) "bevel"(斜交) "miter"(斜接)

最后是 clearRect() 方法,用于清除画布指定矩形区域内的图形,如:

var drawing = document.getElementById('drawing');

if(drawing.getContext){
var context = drawing.getContext('2d'); // 绘制红色矩形
context.fillStyle = "#ff0000";
context.fillRect(10,10,50,50); // 绘制半透明蓝色矩形
context.fillStyle = 'rgba(0,0,255,0.5)';
context.fillRect (30,30,50,50); // 在两个矩形的重叠区域清除一个小矩形的区域
context.clearRect(40,40,10,10);
}

Javascript高级编程学习笔记(86)—— Canvas(3)绘制矩形的更多相关文章

  1. Javascript高级编程学习笔记(93)—— Canvas(10) 模式及图像数据

    模式 模式其实就是重复的图像,用来填充或描边图形 要创建一个新模式,可以调用 createPattern()并传入两个参数 一个HTML img元素 用于表示如何重复的字符串 "repeat ...

  2. Javascript高级编程学习笔记(87)—— Canvas(4)绘制路径

    绘制路径 2D上下文支持许多在画布上绘制路径的方法 通过路径可以创造出复杂的形状和线条,要绘制路径首先必须调用beginPath()方法,表示开始绘制路径 然后再通过下列的方法绘制路径: arc(x, ...

  3. Javascript高级编程学习笔记(94)—— Canvas(11) 合成

    合成 除了之前介绍的属性之外,还有两个属性会应用到整个2d上下文中; globalAlpha 用于指定所有绘制的透明度 globalComposition 用于表示后绘制的图形怎样与先绘制的图形进行结 ...

  4. Javascript高级编程学习笔记(90)—— Canvas(7) 绘制图像

    绘制图像 2D绘图上下文内置了对图像的支持 如果希望将一幅图绘制到画布上,可以使用 drawImage() 的方法 该方法有三种不同的参数数组合以对应不同的应用场景 将<img>绘制到画布 ...

  5. Javascript高级编程学习笔记(89)—— Canvas&lpar;6&rpar; 变换

    变换 通过上下文的变化,可以对图像进行处理后再将其绘制到画布上 当我们创建上下文时,会以默认值初始化变化矩阵,在默认的变换矩阵下所有处理都按描述直接绘制. 而当我们为上下文应用变换时,会导致使用不同的 ...

  6. Javascript高级编程学习笔记(88)—— Canvas&lpar;5&rpar;绘制文本

    绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...

  7. Javascript高级编程学习笔记(85)—— Canvas&lpar;2&rpar;2D上下文

    2D上下文 使用2D上下文提供的方法可以绘制简单的2D图形,如矩形,弧线和路径; 2D上下文的坐标开始域<canvas>元素的左上角,原点坐标为(0,0) 后续所有操作的计算都基于原点,x ...

  8. Javascript高级编程学习笔记(84)—— Canvas&lpar;1&rpar;基本用法

    Canvas绘图 Canvas自HTML5引入后,由于其炫酷的效果成为HTML5新增功能中最受欢迎的部分 Canvas元素通过在页面中设定一个区域,然后就可以使用JS在其中绘制图形 <canva ...

  9. Javascript高级编程学习笔记(91)—— Canvas&lpar;8&rpar; 阴影

    阴影 2D上下文将会根据以下属性为形状或路径绘制阴影 shadowColor: 用于设置阴影颜色,默认为黑色 shadowOffsetX: 形状或路径X方向的阴影偏移量,默认为0 shadowOffs ...

随机推荐

  1. JMS发布&sol;订阅消息传送例子

    前言 基于上篇文章"基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送"很容易就可以编写一个发布/订阅消息传送例子,相关环境准备与该篇文章基本类似,主要 ...

  2. ios内购

    1.添加框架,storeKit.framework 需要真机调试 /* 内购五步: 1.请求可销售商品的列表 2.展示课销售的商品 3.点击购买 4.开具小票 5.创建交易对象并添加到交易队列 6.创 ...

  3. UVa 1639 &lpar;期望&rpar; Candy

    题意: 两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖.直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望. 分析: 紫书上面已经分析 ...

  4. java 枚举使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...

  5. &lpar;五&rpar;Lua脚本语言入门

    ---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...

  6. selenium官方网站文档,testng官方网站文档

    selenium 阅读至grid部分,当前没有远程需求,搁置:https://www.seleniumhq.org/docs/07_selenium_grid.jsp testng http://te ...

  7. cf113D&period; Museum&lpar;期望 高斯消元&rpar;

    题意 题目链接 Sol 设\(f[i][j]\)表示Petya在\(i\),\(Vasya\)在\(j\)的概率,我们要求的是\(f[i][i]\) 直接列方程高斯消元即可,由于每个状态有两维,因此时 ...

  8. 64位Oracle 11g 使用PL&sol;SQL

    Oracle 11g和PL/SQL安装完后,发现打开PL/SQL并不能连接Oracle数据库! [第一回合]完败! 先是在网上找解决方法,说是需要使用Net Configuration Assista ...

  9. Codeforces Round &num;346 &lpar;Div&period; 2&rpar; B&period; Qualifying Contest 水题

    B. Qualifying Contest 题目连接: http://www.codeforces.com/contest/659/problem/B Description Very soon Be ...

  10. 20145103《JAVA程序设计》第十周学习总结

    网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设 ...