之前对于canvas.translate(x,y)的理解有的错误,之前一直以原点(0,0)为基准点,作用就是移动原点,默认的原点(0,0)是在屏幕左上角的,你可以通过translate(x,y)把点(x,y)作为原点,就一直以为这个(x,y)就是新的坐标原点。但看一下API就会知道,这种理解是不对的,不过API上面讲解的也不太清楚:
public void translate (float dx, float dy)
Since: API Level 1
Preconcat the current matrix with the specified translation
Parameters
dx The distance to translate in X
dy The distance to translate in Y
其实是原来的原点分别在x轴和y轴偏移多远的距离,然后以偏移后的位置作为坐标原点。也就是说原来在(100,100),然后translate(1,1)新的坐标原点在(101,101)而不是(1,1)
本文详细解析了canvas.translate(x,y)函数的使用误区,并纠正了将(x,y)理解为新坐标原点的错误观念。通过API解释,明确指出dx和dy参数分别代表沿x轴和y轴的偏移距离,从而得到新的坐标原点位置。
7万+

被折叠的 条评论
为什么被折叠?



