1

有没有办法使用 javascript 将描边路径转换为形状?是否有任何库将其作为内置功能提供?

我知道 Illustrator 有这个功能,所以一个可能的解决方案是复制屏幕上的 SVG 图像并将其移动到 Illustrator,但如果你能这样做,你会丢失所有存储为属性的相关元数据吗?

4

2 回答 2

2

[我]有没有办法使用 JavaScript 将描边路径转换为形状?

是的,有一种方法可以将 SVG 路径笔划转换为轮廓形状。不幸的是,它不是 SVG 中内置的预打包函数。这样做的方法称为数学。您需要考虑贝塞尔曲线、斜接设置、linecaps、linejoins 和 dasharrays。正如@inhan 指出的那样,您可能会使用各种函数来帮助您或近似它,但它们都不会为您做数学计算。这是可能的,但绝不是简单的……在 JavaScript 中。

[W] 有没有办法将屏幕上的 svg 图像复制到 Illustrator 中?

当然,这很容易。

  1. 在 Web 浏览器中打开基于 D3.js SVG 的插图。
  2. 打开开发者工具(或 Firebug)。
  3. 找到您想要的元素,右键单击并选择“复制为 HTML”或“复制 SVG”。
  4. 将代码粘贴到文本编辑器中并用 SVG 包装。
  5. 在 Illustrator 中打开 SVG。
  6. 勾勒出你想要的路径。
  7. 另存为 SVG
  8. 将 Illustrator 导出的 SVG 代码复制/粘贴到……任何你想要的地方。

但这对你有什么好处?当然,没有任何东西适用于您的 D3.js 可视化。

但如果你能做到这一点,你会丢失所有作为属性存储的相关元数据吗?

说什么?如果您在讨论源代码中的属性,那么只有在不将属性复制/粘贴到结果中时才会丢失它。如果您谈论的是绑定到在 Web 浏览器中运行的可视化的 JavaScript 数据,那么如果您往返于 Adob​​e Illustrator,您当然会丢失数据。

你的问题对我来说毫无意义,我觉得我一定错过了你的需求/目标。你真正想要完成什么?

于 2012-05-22T04:29:41.670 回答
0

在 Raphaël 中使用Element.getTotalLength()和函数以及函数中该路径的 stoke -widthstroke-dasharray属性可能会给出结果。Element.getSubpath()

于 2012-05-22T02:33:15.187 回答