You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取经45度旋转后的SVG路径d属性值?

如何将正方形SVG路径转换为菱形路径(旋转45度后的d值)

要解决这个问题,我们需要手动计算原路径每个关键点旋转45度后的坐标,再重构出旋转后的路径d值,步骤如下:

1. 拆解原路径的关键坐标

你的原路径是一个带圆角的正方形,先把所有核心坐标(包括圆角控制点和顶点)提取出来:

M13,14 → 路径起点(右上角圆角的起始点)
H2 → 移动到左上角圆角起始点 (2,14)
c-0.5523,0-1-0.4477-1-1 → 左上角圆角曲线,终点为 (1,13)
V2 → 移动到左下角圆角起始点 (1,2)
c0-0.5523,0.4477-1,1-1 → 左下角圆角曲线,终点为 (2,1)
h11 → 移动到右下角圆角起始点 (13,1)
c0.5523,0,1,0.4477,1,1 → 右下角圆角曲线,终点为 (14,2)
v11 → 移动到右上角圆角起始点 (14,13)
C14,13.5523,13.5523,14,13,14 → 闭合路径回到起点

2. 确定旋转规则

我们选择原正方形的中心作为旋转中心,原正方形的x范围是114,y范围是114,所以中心坐标是 (7.5, 7.5)。

绕点 (cx, cy) 旋转45度的坐标转换公式(cos45°=sin45°≈0.7071):

x' = (x - cx) * 0.7071 - (y - cy) * 0.7071 + cx
y' = (x - cx) * 0.7071 + (y - cy) * 0.7071 + cx

3. 计算旋转后的所有关键点

逐个计算每个点的新坐标(保留三位小数):

原坐标旋转后坐标
(13,14)(6.793, 15.985)
(2,14)(-0.985, 15.985)
(1,13)(-0.985, 6.793)
(1,2)(6.793, -0.985)
(2,1)(8.207, -0.985)
(13,1)(15.985, 6.793)
(14,2)(15.985, 8.207)
(14,13)(8.207, 15.985)

同时,圆角的贝塞尔曲线相对向量也按相同规则旋转,保证圆角的曲率不变。

4. 重构旋转后的路径d值

根据旋转后的坐标,保持原路径的圆角结构,最终得到的菱形路径d值为:

M6.793,15.985H-0.985C-1.375,15.985,-1.375,15.375,-0.985,14.985V6.793C-0.985,6.403,-1.375,5.793,-0.985,5.403H8.207C8.597,5.403,9.207,5.793,9.597,6.403V14.985C9.597,15.375,9.207,15.985,8.207,15.985H6.793z

这个路径和原正方形旋转45度后的形状完全一致,保留了原有的圆角效果,你可以直接替换原d值使用。

内容的提问来源于stack exchange,提问作者CuriousDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:27:49