gpt4 book ai didi

java - java 中的比例尺不适用于 (-1,1) 或 (1,-1)

转载 作者:行者123 更新时间:2023-12-01 11:28:00 25 4
gpt4 key购买 nike

我试图对“好”这个词做一个简单的反射(reflect):因此,我使用 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)时,缩放效果完美。

最佳答案

坐标系因比例负值而改变,因此在 y = 50 处绘制实际上是在 y = -50 处绘制。你可以

  1. 在适当的位置绘制文本,并考虑负比例因子,例如 gr.drawString("good",50,-50);
  2. 在绘制字符串之前调用translate(例如gr.translate(0,-100)

无论哪种方式,请考虑不更改图形转换,而是使用外部转换并随后重置图形转换

AffineTransform previous = gr.getTransform();
AffineTransform newTransform = new AffineTransform(previous);
newTransform.scale(0,-1);
gr.setTransform(newTransform);

gr.setTransform(previous);

关于java - java 中的比例尺不适用于 (-1,1) 或 (1,-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com