HTML图形

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、宽度和高度:

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

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

<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️⃣实例 - 线条

在这里插入图片描述

<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️⃣实例 - 圆形

在这里插入图片描述

<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️⃣实例 - 渐变

在这里插入图片描述

<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 页面中:

<!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.rhkb.cn/news/442813.html

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

相关文章

想要成为独立游戏作者 :通关!游戏设计之道 1-1

1-1代表该书《通关&#xff01;游戏设计之道》第一章的第一篇文章 游戏是什么&#xff1f; 小时候我是先有卡带游戏机后接触的平板电脑和手机&#xff0c;起初我认为游戏是带给人快乐的&#xff0c;我就喜欢游戏里面各种有趣的玩法&#xff0c;各种友爱的画风&#xff0c;尤其…

哈夫曼编码

文章目录 &#x1f34a;自我介绍&#x1f34a;哈夫曼编解码&#x1f34a;哈夫曼树介绍&#x1f34a;哈夫曼编码思想 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家…

AI 正在颠覆编程,程序员的出路在哪里?

AI 正在颠覆编程&#xff0c;程序员的出路在哪里&#xff1f; AI 的飞速发展&#xff0c;让程序员群体感受到了前所未有的压力。我们的工作&#xff0c;真的会被 AI 取代吗&#xff1f;未来的职业发展方向究竟在哪&#xff1f;我们应该害怕&#xff0c;还是应该拥抱这种变化&a…

Spring Boot ⽇志

目录 1.⽇志使⽤ 2.⽇志级别 3.⽇志配置 3.1配置⽇志级别 3.2⽇志持久化 3.3配置⽇志⽂件分割 4.更简单的⽇志输出 1.⽇志使⽤ 在使用之前我们先来了解一下为什么要使用&#xff1f; ⽇志的⽤途 1.系统监控 我们可以通过⽇志记录这个系统的运⾏状态&#xff0c;对数…

The legacy JS API is deprecated and will be removed in Dart Sass 2.0

The legacy JS API is deprecated and will be removed in Dart Sass 2.0 更新了sass版本后&#xff0c;启动项目控制台一直在报错&#xff0c;影响开发效率&#xff0c;强迫症表示忍受不了。 字面意思是&#xff1a;Sass在2.0版本将会移除legacy JS API&#xff0c;所以现在使…

Git的安装配置

目录 一、git和svn的区别是什么 二、下载Git 三、安装 四、使用 一、git和svn的区别是什么 1、git是分布式的&#xff0c;svn是集中的式的 2、git存储数据时是按元数据的方式存储&#xff0c;而svn是按文件的方式存储 3、git分支和svn的分支不一样 4、git没有全局版本号…

【Sceneform-EQR】(手势控制器实现)通过手势事件实现在AR/VR等三维场景中的控制模型旋转、平移与缩放

在Sceneform-EQR中实现旋转平移缩放手势 实现在AR/VR等三维场景&#xff0c;通过手势控制模型节点的缩放、平移和旋转。 实现思路 实现模型旋转 Sceneform-EQR(filament\opengl)中采用右手坐标系。通过欧拉角进行旋转采用Z->Y->X的顺序&#xff0c;在这里&#xff0c;…

iOS swift5 苹果app审核被拒 1.4.1

文章目录 1.被拒2. 官网1.4.1的规定3.如何解决参考博客 1.被拒 准则1.4.1-安全-人身伤害 该应用程序连接到外部医疗硬件&#xff0c;以提供医疗服务。然而&#xff0c;为了遵守准则1.4.1&#xff0c;您必须&#xff1a; -提供来自适当监管机构的文件&#xff0c;证明应用程序…

vim 操作

vim编辑器的有三种工作模式&#xff1a;命令模式、插入模式和底行命令模式 打开进入命令模式&#xff1a; 由命令模式到输入模式&#xff1a;i:在光标前插&#xff1b;a:在光标后插&#xff1b;o:在下一行插 由输入模式进入命令模式&#xff1a;esc 由命令模式进入底行命令…

LabVIEW激光诱导击穿光谱识别与分析系统

LabVIEW激光诱导击穿光谱&#xff08;LIBS&#xff09;分析系统利用高能量脉冲激光产生高温等离子体&#xff0c;通过分析等离子体发出的光谱来定性分析样品中的元素种类。该系统的开发集成了软件与硬件的设计&#xff0c;实现了自动识别和定性分析功能&#xff0c;适用于环境监…

多表数据实时同步和批量实时同步怎么高效实现?

对于企业来说&#xff0c;准确、及时的数据是进行数据分析和决策支持的基础。如果各个系统中的数据不能及时同步&#xff0c;就会影响数据分析的结果和决策的准确性。通过数据同步&#xff0c;可以将企业内部各个系统中的数据整合到一个数据仓库或数据分析平台中&#xff0c;为…

WSL(Windows Subsystem for Linux)——简单的双系统开发

文章目录 WSLWSL的作用WSL的使用WSL的安装挂载磁盘的作用安装linux发行版 WSL 前言&#xff1a;本人由于在开发中需要linux环境&#xff0c;同时还想要直接在Windows下开发&#xff0c;来提升开发效率&#xff0c;随即简单学习WSL。 WSL&#xff08;Windows Subsystem for Li…

水污染急需机器人,材料局限遇难题,MXene 水凝胶有潜力

大家好&#xff01;今天我们来了解一项关于水污染管理的前沿研究——《A MXene Hydrogel‐Based Versatile Microrobot for Controllable Water Pollution Management》发表于《Advanced Science》。水污染&#xff0c;尤其是有机染料污染&#xff0c;严重威胁着我们的健康和环…

【Linux基础】03 Linux环境基础开发工具使用

1. yum ——软件包管理器 yum 是我们 Linux 预装的一个指令&#xff0c;搜索、下载、、安装对应的软件 yum 相当于 Linux 的应用商店&#xff01; 安装与卸载 yum list | grep command 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我…

大数据毕业设计选题推荐-电影票房数据分析系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

【CKA】CKA第二次考试经验总结

第一次考试申诉回来后&#xff0c;就重新预约了考试。 这一次考试&#xff0c;认真吸取了第一次的经验教训&#xff0c;认真对待&#xff0c;再不敢马虎大意了&#xff0c;哈哈。 一、考试前 以下准备做了好几次&#xff1a; 1、考试环境&#xff1a;重新找了有插网线的会议室…

微软官网列出了 Windows 11 LTSC 2024 中的全部新功能

今天早些时候&#xff0c;微软发布了有关受托管PC的Windows 11 24H2 升级和兼容性的详细信息。 该帖子针对的是负责在各自办公室和组织中处理系统的 IT 系统管理员。与此同时&#xff0c;微软也发布了有关 Windows 11 LTSC 或长期服务渠道的信息。 该公司已于四月早些时候证实…

STM32 Hal库SDIO在FATFS使用下的函数调用关系

STM32 Hal库SDIO在FATFS使用下的函数调用关系 本文并不将FATFS的相关接口操作&#xff0c;而是将HAL在使用FATFS通过SDIO外设管理SD卡时&#xff0c;内部函数的调用逻辑&#xff0c;有助于当我们使用CUBEMX生成FATFS读取SD卡的代码时无法运行时Debug。本文也会说明一些可能出现…

力扣LeetCode-链表中的循环与递归使用

标题做题的时候发现循环与递归的使用差别&#xff1a; 看两道题&#xff1a; 两道题都是不知道链表有多长&#xff0c;所以需要用到循环&#xff0c;用到循环就可以把整个过程分成多个循环体&#xff0c;就是每一次循环要执行的内容。 反转链表&#xff1a; 把null–>1…

JavaEE: 深入解析HTTP协议的奥秘(3)

文章目录 HTTP认识 "报头"(Header)认识 "状态码"(status code) HTTP JavaEE: 深入解析HTTP协议的奥秘(2) 书接上文~ 认识 “报头”(Header) Header 的整体的格式是"键值对"结构. 每个键值对占一行,键和值之间使用分号分隔. Host 表示服务器主…