javascript - 如何通过删除变换属性来重新创建 svg 路径?

标签 javascript svg path rotation transform

我想通过删除转换属性来重新创建路径。 这是我的路径

<path d="M403.50030270807304 217.03163650993932 L686.287752708073 217.03163650993932 L686.287752708073 417.3799865099393 L403.50030270807304 417.3799865099393  Z" fill="none" stroke="#006400" stroke-miterlimit="null" stroke-width="1" pointer-events="all" id="bound_0" transform="rotate(90,403.50030270807304,217.03163650993932)" stroke-dasharray="5"></path>

我要删除 transform="rotate(90,403.50030270807304,217.03163650993932)" 并重新生成路径('d'属性)

有没有解决办法或者其他方法?

最佳答案

来自:

d="M403.50030270807304 217.03163650993932 L686.287752708073 217.03163650993932 L686.287752708073 417.3799865099393 L403.50030270807304 417.3799865099393  Z"

整理至小数点后两位,添加逗号作为“x, y”分隔符。

d="M403.5, 217.03 L686.29, 217.03 L686.29, 417.38 L403.5, 417.38  Z"

从下一个坐标中取出第一对坐标,并继续直到结束。

如果第一个坐标大于第二个,结果 * -1。

d="M403.5, 217.03 L686.29, 217.03 L686.29, 417.38 L403.5, 417.38  Z"
    403.5     -    686.29    =                                282.79  
           217.03     -    217.03 =                             0
                   686.29     -    686.29 =                     0
                           217.03    -     417.38 =           200.35
                                   686.29    -     403.5 =   -282.79
                                           417.38     -   417.38 = 0

将每次计算的结果依次放入路径中。 将 L(绝对行数)替换为 l(相对行数)。

d="M403.5, 217.03 l-282.79, 0 l0, -200.35 l282.79, 0 z"

缩短 v 和 h 的 lineto,因为它们是垂直线和水平线,并去掉 0。

d="M403.5, 217.03 h282.79 v200.35 h-282.79 z"
<小时/>

transform="rotate(90,403.5,217.03)"内容如下:

在 x = 403.5,y = 217.03 处,旋转 90 度。 403.5, 217.03 是路径的起点(原点), 即它的一个 Angular 落。 旋转90度时,水平变为垂直,垂直变为水平。将h200.35更改为h-200.35

d="M403.5, 217.03 h282.79 v200.35 h-282.79 z"
d="M403.5, 217.03 v282.79 h-200.35 v-282.79z"

虽然现实是你有一个矩形。元素 rect (一个不言自明的元素)应该足够了,我强烈建议你使用它。 <rect id="bound_0" x="203.15" y="217.03" width="200.35" height="282.79" stroke="#006400" stroke-width="1" stroke-miterlimit="null" fill="none" pointer-events="all"/>

关于javascript - 如何通过删除变换属性来重新创建 svg 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59776993/

相关文章:

javascript - d3 在热图框中添加文本

ios - UIImageView 在单 View 应用程序中遵循循环路径,如何?

python - 如何使用运行模块功能在 Komodo IDE 中运行 python 程序,就像在 IDLE(Python GUI) 中一样?

macos - 用于解析别名路径的 OS X 终端命令

javascript - 带有 .js 验证的 php 邮件 -> 看不到任何错误

javascript - 谷歌浏览器扩展程序: how to open a new browser window more than once?

javascript - 什么时候调用 document.appendChild()?

javascript - 在给定位置 (x,y) 的情况下获取 SVG 元素的最快方法是什么?

javascript - Canvas 上的 SVG 黑线看起来是灰色的?

javascript - 如何计算字符串中的某些字符