SVG二次贝塞尔曲线:绘制平滑边缘的利器
本文将探讨如何在HTML5 SVG中使用二次贝塞尔曲线绘制平滑边缘。二次贝塞尔曲线通过SVG路径d
属性中的Q
指令定义,具有起点和终点,并通过单个控制点来确定曲线的弯曲程度。
关键要点:
- SVG路径
d
属性中的Q
指令用于定义二次贝塞尔曲线,它包含起点、控制点和终点三个坐标。 - 使用小写字母
q
可以指定相对坐标,而T
和t
指令则可以用于连接多个曲线,系统会根据上一个曲线自动推断控制点,以确保曲线平滑过渡。 - 虽然编码和可视化二次贝塞尔曲线可能具有挑战性,但可以使用工具生成
<path></path>
代码。 - 二次贝塞尔曲线可用于创建复杂的形状,并可以通过
<animate></animate>
元素、CSS动画或JavaScript进行动画处理。
先前文章“如何在SVG中创建复杂的路径”探讨了<path></path>
元素,并展示了如何绘制一系列线段和弧线来创建任何形状(常用于在无需下载完整字体的情况下复制字体)。d
属性提供了一些额外的技巧来绘制平滑曲线。本文将讨论二次贝塞尔曲线,您还可以参考“如何在SVG图像上绘制三次贝塞尔曲线”以了解更复杂的选择。
什么是二次贝塞尔曲线?
二次贝塞尔曲线具有起点(P0)和终点(P2)。单个控制点(P1)决定线的曲率。维基百科的贝塞尔曲线页面提供了一个很好的生成图示:
图片源自维基百科
数学爱好者也可以在Wolfram MathWorld上查看令人头疼的方程式。
二次曲线非常适合绘制平滑边缘。从下图可以看出,很容易指定一个控制点,而通常情况下会出现直角边:
复杂的路径
二次贝塞尔曲线使用SVG路径d
属性中的Q
指令定义:
<path d="M100,250 Q250,100 400,250" />
初始M
指令将笔移动到第一点(100,250)。Q
之后跟随两个坐标:单个控制点(250,100)和最终绘制到的点(400,250)。
您也可以使用小写字母q
来表示相对坐标而不是绝对坐标。以下曲线将是相同的,并且可能更容易编码:
<path d="M100,250 Q250,100 400,250" />
最后,还有简写T
和t
指令(通常,小写字母表示相对坐标而不是绝对坐标)。这些指令接受进一步的结束坐标以将多个曲线连接在一起。控制点是从上次使用的点推断出来的,以保证完美的平滑连续曲线。例如,考虑以下路径:
<path d="M100,250 q150,-150 300,0" />
它绘制一条从100,250到400,250的曲线,控制点位于250,100。然后绘制另一条曲线,结束于700,250,控制点被推断为550,400。
推断出的控制点在数学上是正确的,但可能并不总是您需要的!
二次贝塞尔曲线可能有点难以编码和可视化,因此可以使用快速生成工具为您生成<path></path>
代码:
拖动曲线两端的控制点。单击曲线本身以切换填充效果,该效果会添加结束Z
指令。
请注意,此工具必须将DOM页面坐标转换为SVG坐标才能确保其在所有屏幕尺寸下都能正常工作。这可能比您预期的要复杂一些,因此请参考“如何从DOM坐标转换为SVG坐标并返回”以了解完整细节。
如果您准备好处理更复杂的问题,请尝试在SVG图像上创建三次贝塞尔曲线。
(此处应添加原文中提到的FAQ部分,内容已在原文中给出,此处不再重复)
以上是如何在HTML5 SVG上绘制二次Bézier曲线的详细内容。更多信息请关注PHP中文网其他相关文章!

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能