<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Canvas 和 SVG on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/canvas-%E5%92%8C-svg/</link><description>Recent content in Canvas 和 SVG on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 06 Nov 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/canvas-%E5%92%8C-svg/index.xml" rel="self" type="application/rss+xml"/><item><title>Canvas 和 SVG</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/html/canvas-svg/</link><pubDate>Wed, 09 Oct 2024 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/html/canvas-svg/</guid><description>&lt;h2 id="1canvas"&gt;1.Canvas&lt;/h2&gt;
&lt;p&gt;Canvas 是 HTML5 中新增的一个元素，它提供了一种通过 JavaScript 来绘制图形的方式，使用笔刷绘制2D图案。通过 Canvas，我们可以在网页中动态地绘制出各种图形、图表、动画等内容，实现更丰富的交互效果。&lt;/p&gt;
&lt;h3 id="工作方式"&gt;工作方式&lt;/h3&gt;
&lt;p&gt;Canvas 的工作方式是，我们首先在 HTML 页面中添加一个 &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; 元素，并指定其宽度和高度，然后在 JavaScript 中获取该元素的上下文对象，并通过调用它的方法来绘制图形。Canvas 的上下文对象有多种，包括 2D 上下文、WebGL 上下文等，我们可以根据需求选择相应的上下文对象来进行绘制。&lt;/p&gt;
&lt;h3 id="常用属性"&gt;常用属性&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;属性&lt;/th&gt;
&lt;th&gt;效果&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fillStyle&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;填充颜色。默认为黑色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;strokeStyle&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;描边颜色。默认为黑色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lineWidth&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;线条宽度。默认为 1 像素&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lineCap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;线条末端的样式,可选值有 butt、round 和 square。默认为 butt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lineJoin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;线条相交处的样式,可选值有 miter、round 和 bevel。默认为 miter。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;miterLimit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;线条相交处的最大斜接长度。默认为 10 像素&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;globalAlpha&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;绘制的透明度。默认为 1（不透明）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;shadowColor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;阴影颜色。默认为黑色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;shadowOffsetX&lt;/code&gt;、&lt;code&gt;shadowOffsetY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;阴影的偏移量和模糊程度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;shadowBlur&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;模糊程度&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="优缺点"&gt;优缺点&lt;/h3&gt;
&lt;h4 id="优点"&gt;优点&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;基于矢量绘制，图形可以自由缩放而不失真&lt;/li&gt;
&lt;li&gt;具有良好的跨浏览器兼容性&lt;/li&gt;
&lt;li&gt;通过 JavaScript 动态生成图形，可以更加灵活地控制图形的显示和交互&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="缺点"&gt;缺点&lt;/h4&gt;
&lt;p&gt;无法处理复杂的交互事件、不支持跨域图像等&lt;/p&gt;
&lt;h3 id="使用实例"&gt;使用实例&lt;/h3&gt;
&lt;p&gt;这个实例中，我们使用了一个 HTML5 的 Canvas 元素，它的宽度和高度分别为 200 像素。在 JavaScript 中，我们获取了这个元素，并通过 &lt;code&gt;getContext&lt;/code&gt; 方法获取了它的上下文对象。然后，我们使用 &lt;code&gt;fillStyle&lt;/code&gt; 属性设置了矩形的填充颜色为红色，并使用 &lt;code&gt;fillRect&lt;/code&gt; 方法绘制了一个起点坐标为 (50,50)，宽度为 100 像素，高度为 100 像素的矩形。&lt;/p&gt;</description></item></channel></rss>