【发布时间】:2017-05-30 18:05:10
【问题描述】:
我看到了一个可以创建 svg 弧的 d3 辅助函数:making an arc in d3.js
有没有办法在 d3.js 中将现有的 svg 弯曲成弧?如果没有,如何在 JavaScript 中完成?初始图像可能是一个内部有负空间的正方形,形成猫的轮廓。
我附上了一张我想要的图。我最终想要制作更多并创建一个环,然后是较小变换的同心环。
【问题讨论】:
-
你能画出你想要的吗?
-
我用 dvg.js 进行了实验,它能够通过添加大量点并将线变成曲线来扭曲 svg。我更新并添加了我要做什么的图像。
-
有一种方法,但不适用于所有原语。这可以在
<path>上完成,其所有实体都分开椭圆弧。因此,如果您将整个 SVG 转换为仅包含线条和贝塞尔曲线的<path>,您可以将此类多边形转换为弯曲的贝塞尔三次曲线,但这并不像听起来那么容易...... -
你想要的需要非仿射变换。 SVG 不支持非仿射变换。
-
@VagueExplanation:该示例每个块没有一个 SVG 图像。它只是一堆小路径,代码指定如何绘制每条线。正如您的问题所暗示的那样,这与转换更复杂的 SVG 图像相去甚远。
标签: javascript d3.js svg geometry transform