2.1 HTML5 - Canvas标签

embedded/2024/12/23 3:47:32/

文章目录

  • 引言
  • Canvas标签概述
    • 定义
    • 实例:创建画布
  • 理解Canvas坐标系
    • 概述
    • 实例:获取Canvas坐标
  • 获取Canvas环境上下文
    • 概述
    • 实例:获取Canvas环境上下文
    • 设置渐变色效果
  • 结语

在这里插入图片描述

引言

大家好,今天我们要一起探索HTML5中一个非常有趣且强大的特性——Canvas。我们将通过几个实例来了解如何使用Canvas标签,获取其上下文,绘制基本图形,以及实现渐变效果。让我们开始吧!

Canvas标签概述

定义

<canvas>标签是HTML5中用于绘制图形的元素。它提供了一个空白画布,通过JavaScript进行绘制。该标签本身不绘制任何图形,而是作为图形的容器。

实例:创建画布

我们来看一个简单的例子,创建一个200x150像素的画布,并给它一个紫色的边框。

<canvas id="myCanvas" width="200" height="150" style="border: 1px solid #ff00ff;">您的浏览器不支持HTML5 canvas标签~
</canvas>

理解Canvas坐标系

概述

Canvas元素使用一个二维坐标系统来确定画布上的绘制位置。原点(0,0)位于画布的左上角,水平向右为x轴正方向,垂直向下为y轴正方向。

实例:获取Canvas坐标

我们可以使用JavaScript来捕获鼠标在Canvas上的坐标,并在页面上显示它们。

<div id="box" style="width: 200px; height: 200px; border: 1px solid #ff0000"onmousemove="getCoordinates(event)" onmouseout="clearCoordinates()">
</div>
<div id="xy_coordinates"></div><script>function getCoordinates(e) {var x = e.clientX;var y = e.clientY;document.getElementById("xy_coordinates").innerHTML = "Coordinates: (" + x + ", " + y + ")";}function clearCoordinates() {document.getElementById("xy_coordinates").innerHTML = "";}            
</script>

获取Canvas环境上下文

概述

Canvas环境上下文,通常指的是Canvas 2D渲染上下文,是HTML5 Canvas中用于绘制图形、文本、图像和其他对象的主要接口。

实例:获取Canvas环境上下文

让我们获取Canvas的2D上下文,并绘制一个简单的黄色矩形。

<canvas id="myCanvas" width="200" height="150" style="border: 1px solid #ff00ff;">您的浏览器不支持HTML5 canvas标签~
</canvas><script>var c = document.getElementById("myCanvas");var ctx = c.getContext("2d");ctx.fillStyle = "#ffff00";ctx.fillRect(10, 10, 180, 130);
</script>

设置渐变色效果

我们可以创建一个线性渐变,从蓝色到黄色,并填充一个矩形。

<script>var c = document.getElementById("myCanvas");var ctx = c.getContext("2d");var gradient = ctx.createLinearGradient(0, 0, c.width, c.height);gradient.addColorStop(0, 'blue');gradient.addColorStop(1, 'yellow');ctx.fillStyle = gradient;ctx.fillRect(10, 10, 180, 130);
</script>

结语

通过今天的实战讲稿,我们学习了如何使用HTML5 Canvas来绘制基本图形,理解其坐标系,并获取上下文以绘制更复杂的图形。Canvas是一个强大的工具,可以用来创建各种动态和交互式的图形和动画。


http://www.ppmy.cn/embedded/126544.html

相关文章

【TouchSocket 和 client.GetStream 区别】

TouchSocket 和 client.GetStream() 是用于网络通信的不同工具和方法&#xff0c;但它们的功能层面和适用范围也有明显区别。下面我来详细解释 TouchSocket 和 client.GetStream() 的差异。 1. TouchSocket TouchSocket 是一个完整的 网络通信框架&#xff0c;专注于为开发者…

构建流媒体管道:利用 Docker 部署 Nginx-RTMP 从 FFmpeg RTMP 推流到 HLS 播放的完整流程

最近要实现一个类似导播台的功能&#xff0c;于是我先用 FFmpeg 实现一个参考对照的 Demo&#xff0c;我将其整理为一篇文章&#xff0c;方便后续大家或者和自己参考&#xff01; 1、软件工具介绍 本次部署相关软件 / 工具如下&#xff1a; FFmpeg&#xff1a;全称是 Fast Fo…

Unity修改鼠标图片【超简单】

1.向Unity导入需要修改的鼠标图片&#xff0c;在Unity内设置图片的Texture Type为Cursor。 2.编写代码 [SerializeField] Texture2D mouseTex;//放图片 void Start() {Cursor.SetCursor(mouseTex, Vector2.zero, CursorMode.Auto); }3.代码挂载在某物体&#xff08;或者随便哪…

Spring学习——SpringIOC

1. 资料分析课堂资料: feiQ中会实时共享要求大家有纸笔: 课堂的一些重点记下来typora&#xff08;设置皮肤、高亮、左侧栏合并&#xff09;2. 学习难度慢慢变大, 对于记不住的,一定要回看视频,不要嫌麻烦晚自习,要学会自己整理当天的知识点3. 环境 Jdk11 (运行cmd启动dos窗口, …

移动app的UI和接口自动化测试怎么进行?

标题&#xff1a;从0到1&#xff1a;移动App的UI和接口自动化测试 导语&#xff1a;移动App的快速发展使得UI和接口自动化测试成为了确保应用质量的重要环节。本文将从零开始介绍移动App的UI和接口自动化测试的基本概念以及如何进行测试。 第一部分&#xff1a;了解移动App自动…

架构师之路-学渣到学霸历程-11

权限管理 我们可以通过一下命令来了解Linux的用户权限&#xff1b; Linux的用户权限真的涉及得非常好&#xff0c;让我们了解一下用户权限的知识吧&#xff1b; let’s go go go~&#xff01; chmod命令&#xff1a; 作用&#xff1a;变更文件或者目录的权限语法&#xff1a…

【STM32单片机_(HAL库)】5-1-1【独立看门狗IWDG】独立看门狗IWDG配置步骤

独立看门狗IWDG工作原理 溢出时间计算 独立看门狗IWDG配置步骤

Protobuf:复杂类型接口

Protobuf&#xff1a;复杂类型接口 package字段规则复杂类型enumAnyoneofmap 本博客基于proto3语法&#xff0c;讲解protobuf中的复杂类型。 package 在.proto文件中&#xff0c;支持导入其它.proto文件的内容&#xff0c;例如&#xff1a; test.proto&#xff1a; syntax …