Javascript 如何使用D3从右向左绘制SVG多段线

Javascript 如何使用D3从右向左绘制SVG多段线,javascript,d3.js,svg,Javascript,D3.js,Svg,我有一条从左到右(LTR)模式的SVG多段线,如下所示: <svg width="50" height="50"> <polyline fill="none" stroke="blue" stroke-width="2" points="05,30 15,30 15,20 25,20 25,10 35,10" /> </svg>

我有一条从左到右(LTR)模式的SVG多段线,如下所示:

<svg width="50" height="50">
  <polyline fill="none" stroke="blue" stroke-width="2"
    points="05,30
            15,30
            15,20
            25,20
            25,10
            35,10" />
 </svg>


如何在从右向左(RTL)模式下绘制同一条线?我应该使用变换还是转换属性

我的问题的解决方案是简单地重新绘制SVG的镜像。这可以通过使用变换、平移和缩放特性来完成,如下所示:

transform = "translate($width, 0) scale(-1,1)"
在这里,scale()函数通过沿x轴或y轴缩放-1来用作镜像函数

代码:

<svg width="50" height="50">
  <polyline fill="none" stroke="blue" stroke-width="2"
    points="05,30
            15,30
            15,20
            25,20
            25,10
            35,10" transform="translate(50,0) scale(-1, 1)"/>
 </svg>

注意:正如Robert在评论中提到的,全局方向属性仅适用于文本元素,而不适用于图形元素。因此,在我的js文件中,我检查方向是否为rtl,如果为真,则显示镜像的svg

小提琴的链接如下:

以下两个链接帮助我解决了问题:
[1]

[2]

什么是从左到右模式?那么从右到左的模式是什么呢?您是否只希望绘制的形状围绕其在垂直轴上的中心镜像?我指的是全局方向属性,默认情况下是ltr(从左到右),是的,Robert,您对重新绘制的形状镜像的看法是正确的。这实际上就是问题的解决办法,我正在努力想办法实现它。最后,我做了这个transform=translate($somewidth,0)scale(-1,1)。这给了我RTL模式下SVG的镜像!“全局方向”属性仅与文本有关。没有从左到右的图形。对。因此,无论何时处于RTL模式,我都会重新绘制镜像。:)对不起!我会写下来的@罗伯特朗森