以前没有使用过translate(int x, int y)函数,新项目使用后,明白了使用原理
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回来,使坐标系回归正常