谢宾斯基三角形
本次任务主要是谢宾斯基三角形。
如下图:
这里设置了一个变量t,t取5,用来规定递归多少次。
其次,设置了三个坐标:ax,ay,bx,by,cx,cy,分别表示三角形的三个顶点。然后,我就可以开始画线了。用gr.drawLine()这个方法,画出三角形的三条边即可。接着,要计算出这个三角形三条边的中点,计算出来后,再以这三个中点为顶点,再画一个三角形。然后,我就可以开始递归了。
至于具体应该怎么递归,我这里画了一个示意图:
现在我就得到了四个三角形,中间三角形里不可以画东西,在最上面那个三角形里,取那三条边的中点,然后画三角形,剩下两个三角形同理,当然这一步骤靠递归来完成。然后就可以用if(e.getClickCount()==1)这个来实现点一下就画出来这个图形的操作了。这里实际参数的数据可以自己取实际数字,取实际数字时注意一下取某个数字时三角形画出来后,呈现出来的将是一种什么样子。
当然这里也要在写的方法的括号里加MouseEvent e,否则就会报错!Graphics gr当然也是要加的!
代码实现如下:
注意这里代码是两张截图!下面那个if是在mouseClicked(MouseEvent e)这个方法里的!