HTML5 Canvas(画布)

<canvas>标签定义图形,比如图表和其他图像,你必须用脚本来绘制图形。

在画布上( Canvas )画一个共红色矩形,渐变矩形,彩色矩形,和一些彩色文字。

什么是 Canvas?

HTML5<canvas>元素用于图形绘制,通过脚本(通常是 Javascript)来完成。

<canvas>标签是图形容器,必须使用脚来绘制图形。

你可以通过很多方法使用canvas来绘制路径,盒,圆、字符以及图像。

创建一个画布( Canvas )

一个画布在网页中是一个矩形框通过 <canvas> 元素来绘制。

注意:默认情况下<canvas>元素没有边框内容

<canvas简单实例如下:

<canvas id="mycanva" width="200px" height="200px"></canvas>

注意:标签通常需要一个指定 id 属性( 脚本中经常引用 ),width 和 height属性定义的画布的大小,也可以使用 style属性添加边框。

使用 Javascript 来绘制图像

canvas 元素本身是没绘图能力。所有的绘制工作必须在 Javascript 内完成

var canvas = documnet.getElementById("mycancas")var ctx = canvas.getContext('2d')ctx.fillStyle = '#000000'// fillStyle :属性是填充 CSS背景 渐变  默认是:"#000000"ctx.fillRect(0,0,150,75) /*
参数1:x坐标
参数2:y坐标
参数3:宽
参数4:高
*/

canvas坐标

canvas是一个二维网格

canvas的左上角坐标为(0,0)

上面的 fillRect 方法拥有参数(0,0,,150,75)

意思是:在画布上绘制 150*75的图形,从左上角(0,0)开始

坐标实例

如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。鼠标移动的矩形框上,显示定位坐标。

 Canvas - 路径

在 canvas 上画线,我们可以使用这两种方法:

moveTo(x,y)定义线条开始坐标

lineTo(x,y)定义线条结束坐标

strock()绘制线条的方法

var canvvas = document.getElementById('mycanvas')var ctx = canvas.getContext('2d')//绘制坐标的起始位置  参数一:x轴  参数二:y轴ctx.moveTo(0,0)//绘制坐标的结束位置  参数一:x轴  参数二:y轴ctx.lineTo(200,100)//开始绘制图表ctx.stroke()

在 canvas 中绘制图形,我可以将方法以下方法:

arc(x,y,r,start,stop)

实际上我们可以 strke() 或者 fill()

使用 arc() 方法绘制一个圆:

var canvas = documnet.getElementById('mycanvas')var ctx = canvas.getContext('2d')// 使用 beginPath() 开始绘画ctx.beginPath()// 使用 arc() 开始绘制ctx.arc(150,40,20,0,2*Math*PI)/*
参数一:x轴的位置
参数二:y轴的位置
参数三:半径的位置
参数四:圆的起始位置
参数五:圆的结束位置
*/// 结束绘画ctx.stroke()

 Canvas - 文本

使用 canvas 绘制文本,重要的属性和方法如下:

font - 定义字体

filltext( text,x,y ):在 canvas 上绘制实心的文本

sreokeText( text,x,y ):在 canvas 上绘制空心的文本

// 绘制实心的文本var canvas = document.getElementById('mycanvas')var ctx = canvas.getContext('2d')// 字体大小为 30 pxctx.font = '30px Arial'ctx.fillText(' Eoklee ',15,50)/*
fillText()
参数一:添加文字的内容
参数二:x轴的位置
参数三:y轴的位置
*/// 绘制空心的文本var canvas = document.getElementById('mycanvas')var ctx = canvas.getContext('2d')// 字体大小为 30 pxctx.font = '30px Arial'ctx.strokeText(' Eoklee ',15,50)/*
strokeText()
参数一:添加文字的内容
参数二:x轴的位置
参数三:y轴的位置
*/-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53529.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍

机器学习笔记之优化算法——梯度下降法铺垫&#xff1a;总体介绍 引言回顾&#xff1a;线搜索方法线搜索方法的方向 P k \mathcal P_k Pk​线搜索方法的步长 α k \alpha_k αk​ 梯度下降方法整体介绍 引言 从本节开始&#xff0c;将介绍梯度下降法 ( Gradient Descent,GD ) …

SpringCloud入门Day01-服务注册与发现、服务通信、负载均衡与算法

SpringCloudNetflix入门 一、应用架构的演变 伴随互联网的发展&#xff0c;使用互联网的人群越来越多&#xff0c;软件应用的体量越来越大和复杂。而传统单体应用 可能不足以支撑大数据量以及发哦并发场景应用的框架也随之进行演变从最开始的单体应用架构到分布式&#xff08…

openpnp - 8mm物料编带的厚度

文章目录 openpnp - 8mm物料编带的厚度概述笔记END openpnp - 8mm物料编带的厚度 概述 做了一个散料飞达, 回来后试了一下. 并不是所有8mm编带都能顺利插入散料飞达. 原来, 不同物料的8mm编带厚度是不一样的. 那就量一下. 笔记 参考电阻的厂家说明书(e.g. C2907561_贴片电阻…

基于Mediapipe的姿势识别并同步到Unity人体模型中

如题&#xff0c;由于是商业项目&#xff0c;无法公开源码&#xff0c;这里主要说一下实现此功能的思路。 人体关节点识别 基于Mediapipe Unity插件进行开发&#xff0c;性能比较低的CPU主机&#xff0c;无法流畅地运行Mediapipe&#xff0c;这个要注意一下。 Mediapipe33个人体…

搜索是什么

1、什么是搜索&#xff1f; 搜索&#xff1a;计算机根据用户输入的关键词进行匹配&#xff0c;从已有的数据库中摘录出相关的记录反馈给用户。 常见的全网搜索引擎&#xff0c;有百度、谷歌这样搜索网站。 除此&#xff0c;搜索技术在垂直领域也有广泛的使用&#xff0c;比如淘…

【福建事业单位-推理判断】06翻译推理、组合排列

【福建事业单位-推理判断】06翻译推理、组合排列 一、翻译推理1.1 前推后&#xff08;如果&#xff0c;那么&#xff09;1.1.2逆否命题1.3 传递关系1.4后推前&#xff08;只有才&#xff09;后推前&#xff1a;不....不............&#xff0c;除非....否则不..........1.4.2后…

【vue】vue-image-lazy图片懒加载使用与介绍【超详细+npm包源代码】

简介 当前插件是基于vue3&#xff0c;写的一个图片懒加载&#xff0c;文章最下方是npm包的源码&#xff0c;你可以自己拿去研究和修改&#xff0c;如有更好的想法可以留言&#xff0c;如果对你有帮助&#xff0c;可以点赞收藏和关注&#xff0c;谢谢。 后续会添加图片放大和切…

SpringCloud之微服务API网关Gateway介绍

文章目录 1 微服务API网关Gateway1.1 网关简介1.2 Spring Cloud Gateway介绍1.3 Gateway特性1.4 Gateway核心概念1.4.1 路由1.4.1.1 定义1.4.1.2 动态路由 1.4.2 断言1.4.2.1 默认断言1.4.2.2 自定义Predicate 1.4.3 过滤器1.4.3.1 默认过滤器1.4.3.2 自定义Filter&#xff08;…

react18 之 06 之 useReducer 结合 useContext使用 (实现全局状态管理、复杂组件交互逻辑、多个组件需要共享和更新某个状态)

目录 react18 之 06 之 useReducer 结合 useContext使用 (实现全局状态管理、复杂组件交互逻辑、多个组件需要共享和更新某个状态)useReducer 结合 useContext使用 实现全局共享RootCom.jsxA.jsxASon.jsxB.jsxC.jsx执行效果 react18 之 06 之 useReducer 结合 useContext使用 (…

【Excel】记录Match和Index函数的用法

最近一直用到的两个处理EXCEL表格数据的函数向大家介绍一下&#xff0c;写这篇博文的目的也是为了记录免得自己忘记了&#xff0c;嘻嘻。 先上百度的链接 Match函数的用法介绍&#xff1a;https://jingyan.baidu.com/article/2fb0ba40b4933941f3ec5f71.html 小结&#xff1a;…

【云原生持续交付和自动化测试】5.2 自动化测试和集成测试

往期回顾&#xff1a; 第一章&#xff1a;【云原生概念和技术】 第二章&#xff1a;【容器化应用程序设计和开发】 第三章&#xff1a;【基于容器的部署、管理和扩展】 第四章&#xff1a;【微服务架构设计和实现】 第五章&#xff1a;【5.1 自动化构建和打包容器镜像】 5…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…