递归算法是把问题转化为规模缩小了的同类问题的子问题。1)核心的子问题算法。2)递归调用。3)给定递归出口。
递归设计使程序简洁,也体现了设计思路在整体-局部上结合的严谨,但仍不提倡程序设计使用,因为其运行效率低且占用栈的空间问题突出。作为解决思路的一种方式还是具有魅力。
分形的自我相似,自我复制和自我嵌套用递归算法来实现是合适的,事实上经典分形图的绘制大多数可采用递归算法。
一.canto三分集。
**渲染框架上有方便绘制几何图形的ShapeRenderer类,它和Batch画笔都封装了调用底层渲染的接口。
注:**标签的段落无关分形算法,是渲染框架上的一些笔记。
三分集递归算法:
private void canto(int ax,int ay,int bx,int by){
if((bx-ax)<c){
renderer.line(ax, ay, bx, by);
}
else{
int cx,cy,dx,dy;
renderer.line(ax, ay, bx, by);
cx=ax+(bx-ax)/3;
cy=ay+50;
dx=bx-(bx-ax)/3;
dy=by+50;
ay=ay+50;
by=by+50;
canto(ax,ay,cx,cy);
canto(dx,dy,bx,by);
}
}