getRotateInstance

 

import java.awt.Canvas;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.geom.AffineTransform;
import java.awt.geom.Line2D;

import javax.swing.JFrame;

/**
 * 返回表示旋转变换的变换。表示返回变换的矩阵是: 
                [   cos(theta)    -sin(theta)    0   ]
                [   sin(theta)     cos(theta)    0   ]
                [       0              0         1   ]
 用正角度 theta 进行的旋转将 X 正半轴上的点向 Y 正半轴旋转。还要注意上文处理 90 度旋转的讨论。 

参数:
theta - 用弧度测量的旋转角度 
返回:
使用指定旋转角度创建的、作为旋转变换的 AffineTransform 对象。
 */
public class Draw2DRotate extends JFrame{
	public Draw2DRotate(){
		add("Center",new MyCanvas2());
		setSize(400, 400);
	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    setVisible(true);
	}

	public static void main(String[] args) {
		Draw2DRotate d2 = new Draw2DRotate();
	}
}

class MyCanvas2 extends Canvas{
	public void paint(Graphics g){
		Graphics2D g2d = (Graphics2D)g;
		//rotate:旋转 循环 指定的原点和方向旋转
		AffineTransform at = AffineTransform.getRotateInstance(Math.PI/16.0d);
		g2d.setTransform(at);
		Line2D.Double shape = new Line2D.Double(0.0,0.0,300.0,300.0);//一条线
		g2d.draw(shape);
		
		g2d.setFont(new Font("Helvetica",Font.BOLD,24));
		String text = "Java2s";
		g2d.drawString(text, 300, 50);//画这个字
		
		Toolkit toolkit = Toolkit.getDefaultToolkit();//获取默认工具包。 
		Image image = toolkit.getImage("E:\\java\\Test\\icon\\44.png");
		g2d.drawImage(image, 100, 50, this);
	}	
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值