sample28_6.java
来自「Java SE 6.0前27-31章示的示例代码,简单易学」· Java 代码 · 共 56 行
JAVA
56 行
package wyf.jc;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
//继承并扩展JPanel类
public class Sample28_6 extends JPanel
{
//重写paint方法
public void paint(Graphics g)
{
//获取Graphics2D对象
Graphics2D g2=(Graphics2D)g;
//创建椭圆
Ellipse2D r = new Ellipse2D.Float(400,160,80,40);
//创建2次曲线
QuadCurve2D e2=new QuadCurve2D.Double(15,125,115,80,175,100);
//创建两个AffineTransform对象
AffineTransform atf1=new AffineTransform();
AffineTransform atf2=new AffineTransform();
//循环绘制变换后的图形
for(int i=1;i<=24;i++)
{
//设置图形的进行缩放
atf1.scale(0.9,0.9);
//设置图形进行旋转
atf1.rotate(15.0*Math.PI/180,150,200);
//为画笔设置变换
g2.setTransform(atf1);
//绘制2次曲线
g2.draw(e2);
//设置图形的进行缩放
atf2.scale(0.9,0.9);
//设置图形进行旋转
atf2.rotate(15.0*Math.PI/180,360,200);
//为画笔设置变换
g2.setTransform(atf2);
//绘制椭圆
g2.draw(r);
}
}
public static void main(String[] args)
{
//创建画布
Sample28_6 jp=new Sample28_6();
//创建窗体
JFrame jf=new JFrame();
//将画布添加进窗体
jf.add(jp);
//设置窗体大小位置、标题以及可见性
jf.setTitle("图形变换示例");
jf.setBounds(100,100,480,250);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?