为什么此代码输出两行大小相同的行?Graphics2D在PaintComponent()中缩放两次
import java.awt.*;
import javax.swing.*;
public class G2Scale extends JPanel{
public static void main(String args[]) {
G2Scale g = new G2Scale();
g.setPreferredSize(new Dimension(200, 200));
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(g);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLUE);
g2.scale(0.5, 1.0);
g2.drawLine(5, 50, 100, 50);
g2.setColor(Color.GREEN);
g2.scale(1.0, 1.0);
g2.drawLine(5, 100, 100, 100);
}
}
我希望这些行的大小不同,因为它们的缩放比例不同。从我所看到的情况来看,我认为这个量表是基于以前的量表。我对吗?
如果这是真的,我将如何获得第二条线来缩放我认为应该是什么?
感谢
缩放是雪上加霜。所以第二个缩放语句是知道适用于第一个(这不会改变任何东西),请尝试使用1.5代替宽度。更好的是,使用AffineTransofmration – MadProgrammer 2013-03-09 06:46:53