【发布时间】:2014-11-15 15:27:47
【问题描述】:
我看到很多人在他们的 Paint 方法中将 Graphics 类型转换为 Graphics2d 类型,以便在他们绘制的图像上拥有更多功能。是否不可能将图形类型转换为绘图函数之外的 graphics2d 类型?对我来说,这会引起性能问题,因为每次调用 paint 方法(即每一帧)时,您每次都不必要地转换为 Graphics2D 类型。
另外,每当调用paint方法并再次绘制相同的屏幕时,Java是否会进行任何优化?例如,如果您只在屏幕上移动一个元素,那么您通常只需要更新该元素。每次调用paint方法时,java似乎都会重绘并重新处理整个屏幕。对我来说,这一切似乎都是不必要的处理密集型。
示例代码:
public void paint(Graphics g) {
AffineTransform transformer = new AffineTransform();
transformer.translate(5,5);
transformer.scale(2,2);
Graphics2D g2d = (Graphics2D)g;
g2d.setTransform(transformer);
// draw to g2d.
}
【问题讨论】:
-
为什么投射会影响性能?
标签: java graphics2d