我试图简单地反映“好”这个词:
所以我使用g2d.scale(1,-1)
但是没有任何东西按y轴缩放文本。
我正在使用这个简单的代码:
@SuppressWarnings("serial")
public class C extends JPanel{
JFrame frame = new JFrame();
public C(){
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.setVisible(true);
}
public void paintComponent(Graphics g){
Graphics2D gr = (Graphics2D)g ;
gr.setColor(Color.BLACK);
gr.fillRect(0, 0,250, 250);
gr.setColor(Color.YELLOW);
gr.drawString("good",50,50);
gr.scale(1,-1);
gr.drawString("good",50,50);
}
public static void main(String[] args){
new C();
}
当我缩放值> 0例如+2时,缩放比例工作正常。
答案 0 :(得分:1)
坐标系正在被比例的负值改变,因此在y = 50时的绘图实际上是在y = -50处绘制的。你可以
gr.translate(0,-100)
无论哪种方式,考虑不改变图形变换,但使用外部变换并随后重置图形变换
AffineTransform previous = gr.getTransform();
AffineTransform newTransform = new AffineTransform(previous);
newTransform.scale(0,-1);
gr.setTransform(newTransform);
gr.setTransform(previous);