我需要一种方法来标记曲线中的起始节点。我在一个外部程序中使用曲线,该程序从起点到终点对对象的绘图进行动画处理。
似乎在某个点切割路径会将起点移动到该位置,但再次组合它会将其移动到其他位置。
如何设置曲线的起点?
我需要一种方法来标记曲线中的起始节点。我在一个外部程序中使用曲线,该程序从起点到终点对对象的绘图进行动画处理。
似乎在某个点切割路径会将起点移动到该位置,但再次组合它会将其移动到其他位置。
如何设置曲线的起点?
曲线不能在中间有起点。它必须是一个或另一个端节点。在 Inskcape 中,您可以使用Path > Reverse 反转路径方向。路径方向影响整个路径。您不能让复合路径的各个部分沿不同的方向运行。只有开放路径有开始和结束节点(见下面的注释)。
如果您愿意,您可以更改首选项以显示路径方向。单击编辑 > 首选项 > 节点。选择“在轮廓上显示路径方向”选项。
当您通过使用节点工具单击路径来显示路径方向时,路径上会显示小箭头,如下例所示:
注意:闭合路径本身没有起始节点,只有一个方向。没有办法在封闭路径的中间指示起始节点,或者让路径的各个部分在不同的方向上运行。路径方向影响整个路径。尽管可能有一种编辑 SVG XML 的方法,以便特定节点出现在路径数据中,但您需要手动执行此操作。据我所知,无法通过在 Inkscape 中应用一些设置来选择封闭路径中的节点并将其更改为第一个节点。也许某处有一个扩展(或有人可以写一个)可以做到这一点,但我还没有找到。
我来晚了,但这是我找到的解决方案:
我正在为网页创建一个“形状分隔符”。我通过手动编码 SVG 来手动创建曲线,但我使用 InkScape 来计算形状的交集,并且我明确希望左下角是起始顶点。
解决方案:
在源中找到形状。我喜欢用换行符来分解它,这样我就可以清楚地看到 SVG 路径的命令,它们都排成一列:
<path id="overlap" d="
M 0,100
C 4.5535681,77.232159 8.6760028,58.507302 12.802734,44.185547
C 19.217072,33.746375 24.557462,27.608473 28.488281,25.675781
C 38.980486,35.823941 52.270327,58.246413 65,56
C 68.894757,55.480699 72.585852,53.805739 76.058594,51.011719
C 77.212366,52.282377 78.224994,53.335709 79,54
C 87 60 96 54 100 52
V 100
" />
Z我在后面添加的V 100:<path id="overlap" d="
M 0,100
C 4.5535681,77.232159 8.6760028,58.507302 12.802734,44.185547
C 19.217072,33.746375 24.557462,27.608473 28.488281,25.675781
C 38.980486,35.823941 52.270327,58.246413 65,56
C 68.894757,55.480699 72.585852,53.805739 76.058594,51.011719
C 77.212366,52.282377 78.224994,53.335709 79,54
C 87 60 96 54 100 52
V 100
Z
" />
然后,我在原始 SVG 中再次复制了路径。
没有Z命令:
使用Z命令:
我真的不需要Z,因为我最终使用它没有边界。所以最终有或没有 Z 看起来都是一样的。在最终的 SVG 中,所有图层都是透明的,除了“inkscape-edited shape”设置为没有透明度的白色。但我确保我将所有“起点”控制在已知位置,用于动画和其他技巧: