getRotateInstance

来源:互联网 发布:俯瞰风景 知乎 编辑:程序博客网 时间:2024/06/18 16:05

 

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);}}


 

原创粉丝点击