首页 > 其他分享 >Web前端画布元素的技巧速成

Web前端画布元素的技巧速成

时间:2023-01-23 12:00:47浏览次数:42  
标签:文字 Web 方法 元素 速成 画布 绘制 线条


画布(canvas)是HTML5中新增加的一个非常重要的元素,使用它的API,我们可以通过绘制的方式实现图形、线条和文字的显示。

1.   目标

使用画布元素,快速绘制一个中小学教学使用的工具,效果如下:

Web前端画布元素的技巧速成_2d

2.   步骤

要使用画布实现上述的图形效果,需要掌握画布的下列API的使用方法:

2.1  直接绘制方法

2.2  圆形绘制方法

2.3  文字绘制方法

同时,还要掌握在图形绘制时图形和文字的颜色配制、线条闭合路径设置和图形的填充及描绘的过程。

3.   过程

3.1  在页面中添加一个指定宽高和边框的画布元素,并通过id号获取到它的上下文环境对象,保存在变量cxt中,用于后续代码的使用,代码如下:

Web前端画布元素的技巧速成_HTML5_02

由于canvas是HTML5中新增元素,因此,需要考虑到它对浏览器的兼容性,如果不兼容该元素时,元素中的文字将显示在页面中。

下列代码用于获取元素的上下文环境对象:

Web前端画布元素的技巧速成_2d_03

在上述代码中,先通过id的方式获取到元素对象,并调用它的getContext方法,然后以2d的形式来绘制画布中的图形效果。

3.2  线条的绘制

l   使用上下文环境对象中的moveTo(x,y)方法,设置起始点的定位。

l   定好起始点后,再使用lineTo(x,y)方法绘制到达的终站位置。

l   lineTo(x,y)方法可以使用多次,用于绘制多条线条的图形。

Web前端画布元素的技巧速成_2d_04

为设置绘制线条的粗细,可以调用lineWidth属性,它的值的单位是像素,另外通过strokeStyle属性设置线条的颜色,为了将绘制过程中的一些配置属性保存在一定范围中,可以通过beginPath和closePath进行路径包裹,当所有的绘制配置项完成后,就可以调用stroke()方法,按指定的线条进行绘制了。

3.3  圆形的绘制

l   与线条绘制不同,圆形的绘制更加简单,它的API方法代码如下:

                 context.arc(x,y,r,sAngle,eAngle,counterclockwise);

l   各参数的功能如下表所示:

Web前端画布元素的技巧速成_2d_05

Web前端画布元素的技巧速成_API_06

在上述代码中,以闭合的路径方式,先配置圆线条的宽度和颜色,再调用arc方法绘制一个指定圆点和半径的图形,最后调用stroke(),按设定的路径进行绘制。

3.4  文字的绘制

l   画布中,文字的绘制更加简单,只要确定文字内容、坐标值就可以绘制了。

context.fillText(text,x,y,maxWidth);

l   各参数的功能如下表所示:

Web前端画布元素的技巧速成_API_07

Web前端画布元素的技巧速成_API_08

在上述代码中,以闭合路径的方式绘制文字,先设定文字的大小与字体,再配置字体的颜色值,完成配置后,最后调用fillText()方法实现文字在指定坐标的绘制。

4.   总结

通过本示例的介绍,初步掌握画布元素的基础使用和以下画布API的调用:

4.1  如何绘制一条独立或闭合的线条。

4.2  绘制一个指定圆点和半径的圆形。

4.3  在画布中以绘制的方式添加文字。

        画布元素的基础功能相对简单,但在使用画布元素开发大型项目时,这些基础的知识点则是开发过程中的核心内容,反复练习画布元素的基础API是熟练掌握它使用的有效方法。

标签:文字,Web,方法,元素,速成,画布,绘制,线条
From: https://blog.51cto.com/u_8238263/6021849

相关文章

  • Nginx+Keepalived实现web服务器高可用
    1、Nginx业务背景现公司需求快速搭建web服务器,对外提供给用户web服务。需求拆分需要基于http协议的软件,搭建服务实现介绍  常见用法:1)web服务器软件httpdhttp协议同类......
  • javaweb基础知识梳理
    1、javaweb模型 java的代码是在内存里的,比如Array、LIst、Map这就意味着在这些容器中存储的数据都是临时的,重启java程序之后数据进入新的生命周期。这种程序也有,比如计......
  • 17个面向Web 开发人员的杀手级网站,值得你收藏
    保持网站方便可能是最终的生产力技巧,以下是我用来让我的生活更轻松的一些最好的网站。让我们一起来看看它们。1、图片API地址:https://source.unsplash.com/世界上最强大的......
  • HTML5 WEB SQL 无法创建数据表的问题
    不知是什么原因,反复试,最后发现是数据表的某一列的字段用的是'check',把它改了后,就一切顺利了:无法创建数据表:db.transaction(function (tx) {       ......
  • Web安全入门与靶场实战(13)- Get方法和Post方法
    在上一节介绍了URL的基本概念,但其实URL中还有一个非常重要的概念没有介绍-URL中的参数。比如一个完整的URL应当是如下格式:http://www.test.com/index.php?id=1“?id=1”就是......
  • 【解决webpack-dev-server 动态配置代理问题】
    【解决webpack-dev-server动态配置代理问题】:https://code84.com/723524.html#devServerproxy_12 文章目录前言一、devServer-proxy二、配置方式1.配置多个......
  • vue3学习之---webpack配置【resolve.alias修改】
    在vue3中,脚手架生成的项目里,webpack的配置文件没有了,因为公共的配置被封装到安装包里了,可以找到如下目录,同样可以修改配置文件:node_modules》@vue》cli-service   ......
  • JAVAWeb学习
    1、基本概念web开发:web,网页的意思静态webhtml,css提供给所有人看的数据始终不会发生变化动态web淘宝,几乎所有的网站提供给所有人看的数据始终会发生变化,每个......
  • Web安全入门与靶场实战(12)- 统一资源定位符URL
    互联网中存在着无数的Web站点,在每个站点中都存放着大量的Web资源,那系统该如何区分用户准备访问的是哪个站点中的哪个资源呢?比如在Linux系统中我们要对某个文件进行操作,首先......
  • RTP封装h264,结合webrtc抓包分析
    作者:拔萝卜的大灰狼链接:https://zhuanlan.zhihu.com/p/402346767来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一简介h264是目前使用......