代码之家  ›  专栏  ›  技术社区  ›  ashish singh

我能在SVG中实现直线和曲线之间的平滑过渡吗?

svg
  •  0
  • ashish singh  · 技术社区  · 7 年前

    如果我这样做了

    <path d="M30 100 Q 80 30, 100 100 T 200 80" fill="none" stroke="black"/>
    

    它会平滑现有的贝塞尔曲线端点,以生成另一条具有指定端点的贝塞尔曲线 T

    所以在这种情况下,曲线之前 T 必须是贝塞尔曲线,我能在第一条曲线是直线的情况下达到效果吗。

    我知道我可以用三次贝塞尔和二次贝塞尔。

    我只是想知道这个案子有没有捷径 我希望贝塞尔曲线从直线开始平滑 或者作为任何路径的延伸

    1 回复  |  直到 7 年前
        1
  •  2
  •   enxaneta    7 年前

    您可以使用如下路径命令绘制一条线:

    <path d="M10,10 L90,90" />
    

    你也可以用二次BÃzier来画同样的线。这个想法是得到这条线上一个点的坐标:在这个例子中,我使用x:50,y:50。

     <path d="M10,10 Q50,50 90,90" />
    

    现在您可以使用T命令:

    svg{border:1px solid}
    path{fill:none; stroke:black;}
    <svg viewbox="0 0 250 150">
      <path d="M10,10 Q50,50 90,90T200,80" />
    </svg>