package Frame;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Polygon;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
public class GameFrame
{
public GameFrame()
{
Frame frame=new Frame("進擊的信息科大");
MyPanel mp=new MyPanel();
// frame.setLocation(300,200);
frame.setSize(800,600);
frame.add(mp);
frame.setVisible(true);
//設置點擊紅叉關閉frame
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public static void main(String args[])
{
new GameFrame();
}
class MyPanel extends Panel
{
public void paint(Graphics g)
{
Rectangle2D rectangle2d=new Rectangle2D.Double(10,10,40,30);
int x[]={10,20,30};
int y[]={10,20,20};
//設置三角形
Polygon polygon=new Polygon(x, y, 3);
Graphics2D graphics2d=(Graphics2D) g;
AffineTransform aTransform=new AffineTransform();
// aTransform.translate(tx, ty);
aTransform.setToTranslation(100, 100);
// aTransform.rotate(Math.PI/8.0);
// aTransform.setToShear(2, 2);
//沿X軸方向軸對稱(y軸方向爲(1,-1))
aTransform.scale(-1, 1);
// 連接變換
graphics2d.setTransform(aTransform);
graphics2d.setColor(Color.blue);
//繪製
graphics2d.draw(polygon);
}
}
}
Java中利用AffineTransform中的scale函數對圖像進行對稱變換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.