1.什么是svg坐标系?众所周知,数学中的坐标系大多指的是笛卡尔直角坐标系并且:x轴为右,y轴为上,角度为逆时针,在svg中,坐标系也是笛卡尔坐标系,x轴是右但:y轴是下,角度是顺时针2.svg的坐标系是什么?svg中有四种坐标系:用户坐标系、自身坐标系、前任坐标系、参考坐标系,下面一一了解。1、用户坐标系为世界坐标系,指的是最原始的svg坐标系。2.自身坐标图形元素或组自身的坐标系如下图所示。rect的坐标系与svg的坐标系和用户坐标系重合。3.前任坐标系为父坐标系。当自身坐标系不进行变换时,与前身坐标系重合。如下图,rect变换后,自身坐标系为蓝色坐标系,前身坐标系为svg的坐标系(与用户坐标系Ouser重合)。4、参考坐标系是一个相对的概念,没有具体的坐标系。比如上图中,也可以使用用户坐标系作为rect的参考坐标系,但是要根据实际情况重新计算坐标值。3、综合示例从头到尾,svg的坐标系都是OA,也是原来的用户坐标系。B组坐标系为OB。translate(0,50)后,OB坐标系整体下移50个像素。注意下移的是OB坐标系本身,而不是OB的内容。rectC的坐标系是OC,width和height是自己的属性,x和y是相对于自己的坐标系OC的坐标值。OC没有变换,所以与父坐标系的坐标系与rectD重合,D的坐标系为OD。详细解释同OC。由于C和D没有平移,所以OB、OC、OD的重合可以理解上一篇文章的问题:上一篇文章中rect的x,y是相对于自身坐标系的值。由于本身没有transform,rect坐标系与父坐标系重合,相对于父g对应的坐标系的取值来说是一个重要的点:transform是基于前任坐标系的自身坐标系统的改造,所以改造是有先后顺序的。如果顺序改变,转换结果会不同。有兴趣的可以看下一篇文章的简单例子。
