分享篇:初识Canvas

目录

什么是Canvas?

canvas的坐标

使用canvas的基本步骤​编辑

步骤:

1.需要一个canvas标签

代码演示(方法1)

代码演示(方法2)

2.需要获取 画笔 对象 (获取 元素的 2D 上下文对象)

3.使用canvas提供的 api进行绘画

代码演示 

注意 


什么是Canvas?

       Canvas 是一个 HTML5 的元素,用于在网页上绘制图形和动画。它提供了一个位图的绘图环境,可以使用 JavaScript 来控制绘图过程。Canvas 可以用于创建交互式的图表、游戏、信息可视化等各种应用。

canvas的坐标

       当使用 <canvas> 进行绘图时,了解坐标体系是很重要的。canvas 的坐标系统使用了标准的笛卡尔坐标系,如下所示:

  • 原点 (0,0) 位于左上角,具有最小的 x 和最大的 y 值。
  • x 轴向右为正方向,y 轴向下为正方向。
  • x 坐标表示点在水平方向上的位置,y 坐标表示点在垂直方向上的位置。

        因此,如果要在 canvas 上绘制一个图形或放置一个元素,需要指定该元素相对于原点的 x 和 y 坐标。

       例如,要在坐标 (100, 200) 处绘制一个方形,可以使用以下代码:

let canvas = document.querySelector('#myCanvas');
let context = canvas.getContext('2d');let x = 100;
let y = 200;
let width = 50;
let height = 50;context.fillRect(x, y, width, height);

        在上述示例中,通过设置 xy 变量的值分别为 100 和 200,确定了矩形的左上角在 canvas 上的位置。然后使用 context.fillRect() 方法绘制了一个宽度为 50,高度为 50 的矩形。

       注意,canvas 的坐标系统是以像素为单位的,所以完全取决于你的设计和上下文来确定合适的坐标值。根据需要,可以通过计算、控制变量的值来放置元素在合适的位置。

使用canvas的基本步骤

步骤:

1.需要一个canvas标签

      创建canvas标签的方法有两种:1.直接在html中的body里写一个canvas标签2.使用createElement()创建函数的的方式用js创建一个canvas写入html。推荐使用第2种createElement()创建元素的方法(createElement元素的方法,在接下来写相关代码时会有提示)

代码演示(方法1)

<body><canvas width="600" height="400" id="canvas"></canvas>  
</body>
</html>
<script>//1.获取canvas标签/找到画布let canvas = document.getElementById('canvas');
</script>

代码演示(方法2)

<script>//1.先创建画布canvaslet cavnas= document.createElement('canvas')document.body.append(cavnas);
</script

2.需要获取 画笔 对象 (获取 <canvas> 元素的 2D 上下文对象)

        通过调用 getContext('2d') 方法,可以获取到该元素的 2D 上下文对象。这个上下文对象可以用于在 <canvas> 上进行绘图、绘制图形、创建动画等操作。

//2.设置画笔
let context = cavnas.getContext('2d');

3.使用canvas提供的 api进行绘画

   context.fillRect(x, y, width, height) 是2D上下文对象中的方法,用于在画布上绘制一个填充矩形。在给定的代码 context.fillRect(100, 100, 200, 200); 中,矩形被绘制在画布上,左上角的坐标为 (100, 100),宽度和高度分别为 200。

 context.fillRect(100,100,200,200);  

代码演示 

//1.获取canvas标签/找到画布let canvas = document.getElementById('canvas');//2.获取context(画笔)对象let context = canvas.getContext('2d');//判断是否有getContextif (!canvas.getContext) {alert('当前浏览器不支持canvas,请下载最新的浏览器')}//3.画出自己想要的图像//画出一个方形,有专门的api fillRect(x,y,width,height)context.fillRect(100,100,200,200);  

注意 

       使用body里面的标签的方式 创建一个canvas对象 ,默认情况下,他的大小是300X150

 canvas 和别的元素不太一样需要使用属性的方式设置宽高

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

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

相关文章

通过RSYNC在linux和windows间同步文件

通过RSYNC在linux和windows间同步文件 下载windows版本rsync下载后是一个zip的压缩包&#xff0c;直接解压就可使用配置windows到linux的秘钥拷贝公钥文件到linux服务器&#xff0c;实现免密配置同步命令结合windows计划任务实现定时同步文件 下载windows版本rsync 下载链接 h…

[kingbase运维之奇怪的现象]

#[kingbase运维之奇怪的现象] ##奇怪的现象 某银行数据中心应用反馈&#xff0c;业务接口日志记录了很多执行慢的SQL&#xff0c;出现的时间是随机的&#xff0c;单独在数据库客户端工具执行会很快返回结果。根据之前的经验推断是业务代码传入的参数类型与数据库表结构字段定义…

Kubernetes Configmap + Secret

Secret是什么&#xff1f; 在Kubernetes中&#xff0c;Secret是一种用于存储敏感信息的资源对象。它主要用于保存密码、API令牌、密钥和其他敏感数据&#xff0c;以供容器、Pod或集群中的其他资源使用。 Secret有以下特点&#xff1a; 安全存储&#xff1a;Secret对象被用于安全…

【面试必刷TOP101】合并k个已排序的链表 判断链表中是否有环

目录 题目&#xff1a;合并k个已排序的链表_牛客题霸_牛客网 (nowcoder.com) 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;判断链表中是否有环_牛客题霸_牛客网 (nowcoder.com) 题目的接口…

公司电脑文件加密防泄密软件系统——「天锐绿盾」

天锐绿盾是一款功能强大的公司电脑文件加密防泄密软件系统&#xff0c;旨在保护企业的知识产权和商业机密。 PC访问地址&#xff1a;http://985.so/2y2n9 它具有以下几个主要特点&#xff1a; 文件加密&#xff1a;天锐绿盾会对存储在公司电脑上的所有敏感文件进行自动加密&am…

JavaScript学习笔记02

JavaScript笔记02 数据类型详解 字符串 在 JavaScript 中正常的字符串都使用单引号 或者双引号" "包裹&#xff1a;例&#xff1a; 转义字符 在 JavaScript 字符串中也可用使用转义字符&#xff08;参考&#xff1a;详解转义字符&#xff09;&#xff1a;例&…

百度收录和权重怎么提升-网站如何获得百度权重

你是否一直苦恼于网站权重的低迷&#xff1f;不知道如何开始提升网站权重&#xff0c;缺乏优质内容更新网站。不清楚如何进行关键词优化来提升网站排名和权重。SEO是一个需要持续投入时间和资源的过程。每个网站的情况都会有所不同&#xff0c;因此所花费的时间也会有所差异。然…

android studio 找不到设备

问题描述&#xff1a; 当android studio 没有打开&#xff0c; 执行adb devices 可以查看到设备&#xff0c; 当android studio 打开&#xff0c; 执行adb devices 可以查看不到设备&#xff0c; android studio 设备管理器中也没有设备 解决方法&#xff1a; 关闭android s…

数据库_之常用API的使用

数据库_之电商API MySQL C API 使用&#xff08;基本函数&#xff09; Mysql C API函数详解 MySQL的常用API 一个常用的程序调用MySQL数据库的时候通常都会调用以下API,下面来逐个分析. mysql_init() //函数原型 MYSQL *STDCALL mysql_init(MYSQL *mysql);这个API主要是用来分…

竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

文章目录 0 简介1 二维码检测2 算法实现流程3 特征提取4 特征分类5 后处理6 代码实现5 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖&#xff0c;适合作为竞赛课…

数据分析三剑客之Pandas

1.引入 前面一篇文章我们介绍了numpy&#xff0c;但numpy的特长并不是在于数据处理&#xff0c;而是在它能非常方便地实现科学计算&#xff0c;所以我们日常对数据进行处理时用的numpy情况并不是很多&#xff0c;我们需要处理的数据一般都是带有列标签和index索引的&#xff0…

uni-app:单页面的页面切换

效果 代码 <template><view><view class"tab-bar"><text class"tab" :class"{ active: activeTab 0 }" click"changeTab(0)">页面1</text><text class"tab" :class"{ active: acti…

解锁网页开发的力量:深入探讨 JavaScript 编程

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 JavaScript 是现代网页开…

SpringBoot 整合 Websocket 通信demo (附浏览器聊天窗口)

1. 依赖 <!-- SpringBoot WebSocket --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>2. 自动注册配置类 import org.springframework.context…

巨人互动|Google海外户Google排名算法机制

谷歌是目前最流行的搜索引擎之一&#xff0c;它的排名算法机制是谷歌搜索引擎的核心。谷歌的排名算法机制可以分为两个部分&#xff1a;计算网页相关度和排序结果。 一、计算网页相关度 谷歌通过计算每个页面的相关度来确定搜索结果的优先级。相关度是根据页面上的关键词、图…

【Java从入门到精通】这也许就是Java火热的原因吧!

前言&#xff1a;Java是一种高级的、面向对象的、可跨平台的程序设计语言。Java根据技术类别可划分为以下几类&#xff1a;JavaSE&#xff08;Standard Edition&#xff0c;标准版&#xff09;&#xff1a;支持面向桌面、嵌入式和移动设备的应用程序开发&#xff1b;JavaEE&…

input子系统框架、外设驱动开发

一、input子系统基本框架 Linux内核为了两个目的&#xff1a; 简化纯输入类外设&#xff08;如&#xff1a;键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等&#xff09;的驱动开发统一输入类外设产生的数据格式&#xff08;struct input_event&#xff09;&#xff0c;更加方…

功率放大器的作用有哪些

功率放大器是电子设备中常见的一个组件&#xff0c;其作用是将输入信号的能量放大到更高的功率级别&#xff0c;以用于驱动高功率负载或者提供足够的功率来满足特定需求。功率放大器在各种应用领域中发挥着重要作用&#xff0c;下面将详细介绍功率放大器的作用与应用。 图&…

亚信科技AntDB数据库携“U8C+AntDB联合产品”亮相“2023全球商业创新大会”,开启生态合作新篇章

8月18-19日&#xff0c;近万人齐聚上海国家会展中心&#xff0c;带着对数字化、数智化趋势和热点的关注&#xff0c;以满腹热情投身到以“数据驱动 智能运营”为主题的“2023全球商业创新大会”&#xff0c;共商新技术条件下企业信息化出现的新课题、新挑战&#xff0c;共享数智…

Linux配置成代理服务器

Linux配置成代理服务器 什么是代理服务器 把Linux配置成代理服务器 开放的代理服务器 升级需要账号密码的代理服务器 Linux系统使用代理服务器 临时通过代理访问 永久通过代理访问 Windows系统使用代理服务器 什么是代理服务器 代理服务器&#xff08;Proxy Server&am…