transformpanel.java

来自「java程序中关于多媒体编程 既有文件说明 更有例子 希望大家可以一起学习交流」· Java 代码 · 共 52 行

JAVA
52
字号
package transform;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.JPanel;/** * <p>Title: Transform</p> * <p>Description: 应用Java 2D API实现几何图形的变换</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 北京师范大学计算机系</p> * @author 张良博 * @version 1.0 */public class TransformPanel extends JPanel {  private Rectangle2D square;  private AffineTransform t;  public TransformPanel() {    square = new Rectangle2D.Double(-50, -50, 100, 100);    t = new AffineTransform();    setRotate();  }  public void paintComponent(Graphics g) {    super.paintComponent(g);    Graphics2D g2 = (Graphics2D)g;    g2.translate(getWidth() / 2, getHeight() / 2);    g2.setPaint(Color.gray);    g2.draw(square);    g2.transform(t);    g2.setPaint(Color.black);    g2.draw(square);  }  public void setRotate(){//设置旋转变换    t.setToRotation(Math.toRadians(30));    repaint();  }  public void setTranslate(){//设置平移变换    t.setToTranslation(20, 15);    repaint();  }  public void setScale(){//设置缩放变换    t.setToScale(2.0, 1.5);    repaint();  }  public void setShear(){//设置修剪变换    t.setToShear(-0.2, 0);    repaint();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?