乐趣区

关于svg:svg05svg的坐标系统和坐标系

一、什么是 svg 的坐标零碎

家喻户晓,数学上的坐标零碎,大部分是指 笛卡尔直角坐标系

并且:x 轴 向右 ,y 轴 向上 ,角度为 逆时针

在 svg 中,坐标零碎同样也是笛卡尔直角坐标系,x 轴 向右

然而: y 轴向下 ,角度为 顺时针

二、什么是 svg 的坐标系?

在 svg 中,共有 4 种坐标系:
  • 用户 坐标系
  • 本身 坐标系
  • 前驱 坐标系
  • 参考 坐标系

咱们来一一理解一下

1、用户坐标系

即世界坐标系,指的是最原始的 svg 坐标系

2、本身坐标系

图形 元素或 分组 自身具备 的坐标系

3、前驱坐标系

父级 坐标系。
本身坐标系 不产生变换 的状况下,和前驱坐标系是重合的。

如下图,rect 变换后本身坐标系是绿色局部,前驱坐标系即 svg 的坐标系(与用户坐标系重合)

4、参考坐标系

是一种 绝对 的概念,没有特指哪个坐标系。
比方下面的图中,用户坐标系也能够作为 rect 的参考坐标系,只是坐标值要依据理论状况从新计算。

三、综合实例

从头到尾顺一下思路

  • svg 的坐标系为 OA,也是原始的用户坐标系
  • 分组 B 的坐标系为 OB,translate(0, 50) 后,OB 坐标系 整体下移 50 像素,留神是 OB 坐标系自身下移,而不是 OB 的内容下移
  • rect C 的坐标系为OC,宽高是本人的属性,x、y 则是绝对于本身坐标系 OC 的坐标值,OC 没有变换,所以与父级坐标系重合
  • rect D 的坐标系为 OD,细节解释同 OC
  • 因为 C、D 没有 translate,所以 OB、OC、OD 重合
在这里就能够了解上一篇的疑难了:

上一篇的 rect 的 x、y 是绝对 本身坐标系 的值,因为本身没有变换,所以 rect 坐标系与父级坐标系重合,也就是绝对父级 g 对应坐标系的值

重要的一点:transform 是 基于前驱坐标系 本身坐标系 的变换,所以变换是有先后顺序的,程序扭转,变换后果就会不同,有趣味的能够看下一篇的简略例子

退出移动版