今天在公司的项目中看到这个函数
不知道什么原理,查了下Api
API的描述如下:
translate(int x, int y)
Translates the origin of the graphics context to the point (x, y) in the current coordinate system.
就是把绘制区的x,y点坐标定义为坐标系的原点
比如之前绘制
g.drawImage(img,x,y,0);
等价于
g.translate(x,y);
g.drawImage(img,0,0,0);
转变之后其他对Graphics的操作,也依赖于新的坐标系
比如
g.setClip(x,y,w,h);
等价于
g.translate(x,y);
g.setClip(0,0,w,h);
因此
g.setClip(x,y,w,h);
g.drawImage(img,x,y,0);
等价于
g.translate(x,y);
g.setClip(0,0,w,h);
g.drawImage(img,0,0,0);
基于translate函数的作用,就可以把Grphics绘制的一些功能,交给别人去做,提供一些方法或者接口,快速开发UI,
比如可以建立一个setX,setY之类的函数,对translate函数的参数进行操作,从而影响到Graphis的绘制位置及绘制区域,不过记得在使用完毕后,translate回来,使坐标系回归正常