HTML图形

news/2025/3/15 21:27:33/

HTML图形

  • 1. HTML5 Canvas
  • 2.HTML5 内联 SVG
  • 3.HTML 5 Canvas vs. SVG

1. HTML5 Canvas

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

1、创建使用 Canvas 元素

向 HTML5 页面添加 canvas 元素。规定元素的 id、宽度和高度:

html"><canvas id="myCanvas" width="200" height="100"></canvas>

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

html"><canvas id="myCanvas" width="200" height="100"></canvas>
<script type="text/javascript">// 使用 document.getElementById() 获取一个在 HTML 中 id 为 "myCanvas" 的 <canvas> 元素var c=document.getElementById("myCanvas");// 调用 getContext("2d") 方法,获取这个 <canvas> 的 2D 绘图环境var cxt=c.getContext("2d");// fillStyle 属性用来设置将要绘制的形状或图形的填充颜色,此处为红色cxt.fillStyle="#FF0000";// fillRect(x, y, width, height) 方法在画布上绘制一个填充的矩形。// 参数 (0, 0) 表示矩形的左上角起始位置在画布的左上角(即坐标 (0, 0))// 150 是矩形的宽度,75 是矩形的高度cxt.fillRect(0,0,150,75);
</script>

2、更多 Canvas 实例

1️⃣实例 - 线条

在这里插入图片描述

html"><canvas id="myCanvas" width="200" height="100"></canvas>
<script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");cxt.moveTo(10,10);cxt.lineTo(150,50);cxt.lineTo(10,50);cxt.stroke();
</script>

2️⃣实例 - 圆形

在这里插入图片描述

html"><script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");cxt.fillStyle="#FF0000";cxt.beginPath();cxt.arc(70,18,15,0,Math.PI*2,true);cxt.closePath();cxt.fill();
</script>

3️⃣实例 - 渐变

在这里插入图片描述

html"><script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");var grd=cxt.createLinearGradient(0,0,175,50);grd.addColorStop(0,"#FF0000");grd.addColorStop(1,"#00FF00");cxt.fillStyle=grd;cxt.fillRect(0,0,175,50);
</script>

2.HTML5 内联 SVG

SVG是一种基于 XML 的矢量图形格式,用于描述二维图形。它的主要特点是可缩放,图像在不同分辨率下不会失真,适合在网页上呈现高质量的图形和图表。SVG 支持图形元素(如路径、矩形、圆形、文本等)、样式、交互(如点击事件)和动画,广泛用于网页开发、数据可视化、图标等场景。

在 HTML5 中,可以将 SVG 元素直接嵌入 HTML 页面中:

html"><!DOCTYPE html>
<html>
<body><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190"><polygon points="100,10 40,180 190,60 10,60 160,180"style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg></body>
</html>

在这里插入图片描述


3.HTML 5 Canvas vs. SVG

Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的

Canvas

  • 依赖分辨率
  • 不支持事件处理器
  • 弱的文本渲染能力
  • 能够以 .png 或 .jpg 格式保存结果图像
  • 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

  • 不依赖分辨率
  • 支持事件处理器
  • 最适合带有大型渲染区域的应用程序(比如谷歌地图)
  • 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
  • 不适合游戏应用

http://www.ppmy.cn/news/1536621.html

相关文章

Spring与Spring Boot之间的区别

Spring和Spring Boot是用于开发Java企业应用的两个主流框架。虽然它们都属于Spring生态系统的一部分&#xff0c;但是它们各自有不同的使用场景和特点。 在本文中&#xff0c;我们将探讨Spring与Spring Boot之间的差异&#xff0c;针对他们之间特性的差异&#xff0c;做一个详…

AI学习指南深度学习篇-生成对抗网络的数学原理

AI学习指南深度学习篇-生成对抗网络的数学原理 引言 生成对抗网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;由Ian Goodfellow等人在2014年提出。GAN采用生成器与判别器对抗的方式进行数据生成&#xff0c;其在图像生成、图像超分辨率、文本生成等领域有着广…

Python绘制--绘制心形曲线

今天&#xff0c;我们将通过Python代码来绘制一个心形曲线&#xff0c;这是一个经典的数学表达。 一、心形曲线的数学原理 心形曲线&#xff0c;也被称为心脏曲线&#xff0c;是一个代数曲线&#xff0c;可以通过参数方程定义。其数学表达式如下&#xff1a; x16sin⁡3(t)x16…

PostgreSQL中使用RETURNING子句来返回被影响行的数据

在 PostgreSQL 中&#xff0c;当你执行一个 UPDATE 或 DELETE 操作时&#xff0c;通常希望获取被修改或删除行的数据。为此&#xff0c;PostgreSQL 提供了一个强大的特性&#xff0c;即使用 RETURNING 子句来返回被影响行的数据。 使用 RETURNING 子句 RETURNING 子句允许你在…

Klick‘r3.0.4 |智能自动点击,高效省力

Klick’r 是一款专为 Android 设计的开源自动点击工具&#xff0c;能识别屏幕上的图像并进行相应操作。支持游戏中的自动点击、应用测试及日常任务自动化。 大小&#xff1a;27M 百度网盘&#xff1a;https://pan.baidu.com/s/1881Zfevph6_2Zhdc-H_R4A?pwdolxt 夸克网盘&…

spring boot3.2.x与spring boot2.7.x对比

Spring Boot 3.2.x 相比 Spring Boot 2.7.x 带来了许多重要的变化、新特性以及性能改进。这些新功能不仅提升了开发者的效率&#xff0c;还优化了应用的性能和安全性。以下是两者的主要差异、优势以及使用说明&#xff1a; 1. JDK 17 支持 Spring Boot 2.7.x 支持 JDK 8 至 J…

DAY84服务攻防-端口协议桌面应用QQWPS 等 RCEhydra 口令猜解未授权检测

Day84&#xff1a;服务攻防-端口协议&桌面应用&QQ&WPS等RCE&hydra口令猜解&未授权检测_wps漏洞复现 rce-CSDN博客https://blog.csdn.net/qq_61553520/article/details/137119893?ops_request_misc%257B%2522request%255Fid%2522%253A%25220E34BCAF-166A-4…

Elasticsearch 实战应用:从入门到项目集成

lasticsearch 作为一个分布式搜索和分析引擎&#xff0c;已经被广泛应用于日志处理、数据搜索、实时分析等场景。本文将带你了解 Elasticsearch 的基本概念&#xff0c;并通过一个实际案例展示如何将其集成到项目中。 一、Elasticsearch 简介 1.1 什么是 Elasticsearch&#…