前端基础_绘制带边框矩形
创始人
2024-04-26 13:52:27
0次

 绘制带边框矩形

今天给小伙伴分享,如何在canvas画布中绘制一个矩形。在本例中调用了脚本文件中的draw函数进行图形描绘。该函数放置在body属性中,使用“οnlοad="draw('canvas');"”语句,调用脚本文件中的draw函数进行图像描画。在本例中draw函数的功能是把canvas画布的背景用浅蓝色涂满,然后画出一个绿色正方形,边框为红色。
用canvas元素绘制矩形的具体步骤如下。
(1)用document.getElementById方法取得canvas元素,代码如下。
var canvas = document.getElementById(id);
(2)使用canvas对象的getContext方法来获得图形上下文,同时传入使用的canvas类型,这里传递的仍然是“2d”,代码如下。
var context = canvas.getContext('2d');
(3)填充与绘制边框,用canvas元素绘制图形时,有两种方式——填充与绘制边框。填充是指填满图形内部;绘制边框是指不填满图形内部,只绘制图形的外框。canvas元素结合使用这两种方式来绘制图形。
(4)设定绘图样式(Style),在进行图形绘制时,首先要设定好绘图的样式,然后调用有关方法进行图形的绘制。所谓绘图的样式,主要是针对图形的颜色而言的,但是并不限于图形的颜色,在后面我们将会介绍如何设定颜色以外的样式,本例中主要是应用了如下两种样式。
 设定填充图形的样式
fillStyle属性——填充的样式,在该属性中填入填充的颜色值。
 设定图形边框的样式
strokeStyle——图形边框的样式。在该属性中填入边框的颜色值。
本例中的样式代码如下。
context.fillStyle = "green";
    context.strokeStyle = "red";
(5)指定线宽,使用图形上下文对象的lineWidth属性设置图形边框的宽度。在绘制图形时,任何直线都可以通过lineWidth属性来指定直线的宽度。本例中设置线宽的代码如下。
context.lineWidth=1;
(6)指定颜色值,绘图时填充的颜色或边框的颜色分别通过fillStyle属性与strokeStyle属性来指定。颜色值使用的是普通样式表中使用的颜色值。例如“red”与“blue”这种颜色名,或“#EEEEFF”这种十六进制的颜色值。
另外,也可以通过rgb(红色值、绿色值、蓝色值)或rgba(红色值、绿色值、蓝色值、透明度)函数来指定颜色的值。
本例中指定颜色的值,代码如下。
context.fillStyle = "green";
    context.strokeStyle = "red";
(7)矩形的绘制,分别使用fillRect方法与strokeRect方法来填充矩形和绘制矩形边框。这两个方法的定义如下。
context.fillRect(x,y,width,height);
    context.strokeRect(x,y,width,height);
这里的context指的是图形上下文对象,这两个方法使用同样的参数,x是指矩形起点的横坐标,y是指矩形起点的纵坐标,坐标原点为canvas画布的最左上角,width是指矩形的长度,height是指矩形的高度。通过这4个参数,矩形的大小同时也就被决定了。
本例中绘制矩形的代码如下。
context.fillRect(50,50,100,100);
    context.strokeRect(50,50,100,100);
https://www.bilibili.com/video/BV1Gv4y1Q7px/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421cicon-default.png?t=M85Bhttps://www.bilibili.com/video/BV1Gv4y1Q7px/?spm_id_from=333.999.0.0&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...