[x'] [m00 m01 m02] [x] [m00*x+m01*y+m02] [y'] = [m10 m11 m12] [y] = [m10*x+m11*y+m12] [1 ] [ 0 0 1 ] [1] [ 1 ]
public static AffineTransform getTranslateInstance(double tx, double ty)
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
public static AffineTransform getScaleInstance(double sx, double sy)
[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
public static AffineTransform getShearInstance(double shx, double shy)
[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
[ 1 0 0 ][ 1 shx 0 ] [ shy 1 0 ][ 0 1 0 ] [ 0 0 1 ][ 0 0 1 ]
public static AffineTransform getRotateInstance(double theta)
[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]
public static AffineTransform getRotateInstance(double theta, double x, double y)
[ cos(theta) -sin(theta) x-x*cos+y*sin] [ sin(theta) cos(theta) y-x*sin-y*cos ] [ 0 0 1 ]
[1 0 -x][cos(theta) -sin(theta) 0][1 0 x] [0 1 -y][sin(theta) cos(theta) 0][0 1 y] [0 0 1 ][ 0 0 1 ][0 0 1]
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Panel;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.util.Random;
public class AffineTest extends Applet implements ItemListener{
private Rectangle2D rect;
private Checkbox rotateFirst;
private Checkbox translateFirst;
public void init()
{
setLayout(new BorderLayout());
CheckboxGroup cbg = new CheckboxGroup();
Panel p = new Panel();
rotateFirst = new Checkbox("rotate, translate", cbg, true);
rotateFirst.addItemListener(this);
p.add(rotateFirst);
translateFirst = new Checkbox("translate, rotate", cbg, false);
translateFirst.addItemListener(this);
p.add(translateFirst);
add(p, BorderLayout.SOUTH);
rect = new Rectangle2D.Float(-0.5f, -0.5f, 1.0f, 1.0f);
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
final AffineTransform identify = new AffineTransform();
boolean rotate = rotateFirst.getState();
Random r = new Random();
final double oneRadian = Math.toRadians(1.0);
for(double radians = 0.0; radians < 2.0*Math.PI ; radians += oneRadian)
{
g2d.setTransform(identify);
if(rotate)
{
g2d.translate(100, 100);
g2d.rotate(radians);
}
else
{
g2d.rotate(radians);
g2d.translate(100, 100);
}
g2d.scale(100, 100);
g2d.setColor(new Color(r.nextInt()));
g2d.fill(rect);
}
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
repaint();
}
}
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Panel;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.util.Random;
public class AffineTest extends Applet implements ItemListener{
private Rectangle2D rect;
private Checkbox rotateFirst;
private Checkbox translateFirst;
public void init()
{
setLayout(new BorderLayout());
CheckboxGroup cbg = new CheckboxGroup();
Panel p = new Panel();
rotateFirst = new Checkbox("rotate, translate", cbg, true);
rotateFirst.addItemListener(this);
p.add(rotateFirst);
translateFirst = new Checkbox("translate, rotate", cbg, false);
translateFirst.addItemListener(this);
p.add(translateFirst);
add(p, BorderLayout.SOUTH);
rect = new Rectangle2D.Float(-0.5f, -0.5f, 1.0f, 1.0f);
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
final AffineTransform identify = new AffineTransform();
boolean rotate = rotateFirst.getState();
Random r = new Random();
final double oneRadian = Math.toRadians(1.0);
for(double radians = 0.0; radians < 2.0*Math.PI ; radians += oneRadian)
{
g2d.setTransform(identify);
if(rotate)
{
g2d.translate(100, 100);
g2d.rotate(radians);
}
else
{
g2d.rotate(radians);
g2d.translate(100, 100);
}
g2d.scale(100, 100);
g2d.setColor(new Color(r.nextInt()));
g2d.fill(rect);
}
}
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
repaint();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有