前言
如果说能画出一条直线,就能画出远近高低各不同的山峦,你信么?在遇见分形后,我相信了。
效果图
探索规律
我们来看看这张来源网络的手绘山图片,山的整体效果类似一个凸起的角,选取山的某一个局部,我们还是可以得到一个凸起(或者凹陷)的角,了解这点,我们先取两个点,连线:
接着我们取这两条线段的中点,随机的偏移一段距离,重新连线:
然后根据左边的点和中点,以及中点和右边的点,分别重复上述过程:
到这里是不是有点的山的模样了。接下来我们用代码来模拟一下这个过程。
代码实现
关键代码
/**
* @param startX 当前线段的起点X坐标
* @param startY 当前线段的起点Y坐标
* @param endX 当前线段的终点X坐标
* @param endY 当前线段的终点Y坐标
* @param yRange Y偏移的范围
* @param times 递归次数
*/
private void draw(Graphics g