所以我对 SVG 坐标系有点困惑。我正在做一个将 SVG 对象转换为多边形的项目(然后在 OpenGL 中显示)。我有所有的代码,包括矩形、圆、路径(使用曲线近似)等,并将它们转换为每个对象的一组点。到目前为止,这一切都很好。
我现在正处于实施转换的阶段。我已经编写了所有矩阵函数并准备就绪,但我对 translate(x,y) 和任何以 0,0 为中心的操作(主要是旋转和缩放)之间的关系感到困惑。
因此,假设我们在 0,0 处有一个对象。rotate(45, 100, 100)
相当于translate(100, 100) rotate(45) translate(-100, -100)
,但是如果我将对象移动到 100,100 并且旋转仍然应用在 0,0,这是否意味着旋转中心实际上相对于对象的原始位置发生在 -100,-100?
我想我的问题是如何translate
影响对象的坐标系?似乎在某些情况下它用于将 0,0 移动到指定点而不移动对象,而在其他情况下它用于移动对象。
我对坐标系的理解完全有缺陷吗?