【问题标题】:Invert svg polyline反转svg折线
【发布时间】:2021-12-23 22:05:11
【问题描述】:
我尝试了几次,但我找不到将这个
的点
<p style="text-align: right;">
<svg
class="uk-visible@m"
width="50"
height="100"
viewbox="5 5 13 13"
xmlns="http://www.w3.org/2000/svg"
>
<polyline
fill="none"
stroke="#ff6633"
stroke-width="1.6"
points="25,1 5.3,10 25,19"
></polyline>
</svg>
</p>
有人知道吗?谢谢
【问题讨论】:
标签:
css
svg
polyline
viewbox
【解决方案1】:
只是transform 东西:)
<p style="text-align: right;">
<svg
class="uk-visible@m"
style="transform: rotate(180deg);"
width="50"
height="100"
viewbox="5 5 13 13"
xmlns="http://www.w3.org/2000/svg"
>
<polyline
fill="none"
stroke="#ff6633"
stroke-width="1.6"
points="25,1 5.3,10 25,19"
></polyline>
</svg>
</p>
【解决方案3】:
鉴于您正在使用的 viewBox,折线的等效水平翻转坐标为:
-2,1 17.7,10 -2,19
解释:
- 在水平方向上,您的 viewBox 范围从 x = 5 到 x = 18 (5+13)。
- 要水平翻转,您必须将 X 坐标从 viewBox 的一侧翻转到另一侧。
- 第一个和最后一个 X 坐标是 25。即超过 viewBox 右边缘的 7 (18)。所以要翻转它,我们需要从 viewBox 的 左边缘 中减去 7。这使得那些 -2。
- 中间 X 坐标为 5.3。即 viewBox (5) 左边缘内的 0.3。所以翻转版本需要在右边缘内为0.3。所以 18 - 0.3 变成 17.7。
所以25,1 5.3,10 25,19 变成了-2,1 17.7,10 -2,19。
<p style="text-align: right;"><svg class="uk-visible@m" width="50" height="100" viewbox="5 5 13 13" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#ff6633" stroke-width="1.6" points="-2,1 17.7,10 -2,19"></polyline></svg></p>