递归
为实现一个结果,需要调用多次类似的方法,因此会产生重复代码,那么,我们就可以用到递归;递归的正确使用需要条件来退出循环,否则产生存储溢出现象。
谢宾斯基三角形
每一个正三角形三条边中点的连线产生四个小正三角形,其中有三个正向,一个倒向;再连接三个正向小正三角形的中点连接,每个小正三角形也会产生四个小小正三角形,以此类推。
//主方法
public static void main(String[] args) {
Demotri frame = new Demotri();
frame.ShowUI();//调用ShowUI
}
//创建窗体界面
public void ShowUI(){
JFrame ShowFrame= new JFrame("展示界面");
ShowFrame.setSize(800,800);//设置窗体尺寸
ShowFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭即退出
ShowFrame.setLocationRelativeTo(null);
ShowFrame.setVisible(true);//可视化
Graphics g = ShowFrame.getGraphics();//画笔从窗口获取对象
System.out.println(g);
drawLine(3,g,400,50,500);//调用下面的drawLine
}
接下来利用递归思想画谢宾斯基三角形,drawLine中有几个参数,循环次数、画笔、顶点x坐标、顶点y坐标、正三角形边长。
顶点坐标(x,y)左顶点(x-lengthsin30,y+lengthcos30)
右顶点(x+lengthsin30,y+lengthcos30)
再取每条边中点,进行连接划线,以此类推,随