我试图绘制分形:因为每个圆圈都被分开了,我想在它的左边和右边绘制一半大小的圆圈。这是我的代码:
let rec drawCircle x y r =
let halfSize = r/2 in
draw_circle x y r;
drawCircle (x+r) y halfSize;
drawCircle (x-r) y halfSize;;
它编译但是当我运行它时我得到堆栈溢出。问题是为什么以及如何在此功能中修复它?
答案 0 :(得分:2)
您的代码没有任何终止递归的条件。
例如,当r == 1像素时,不要再次调用drawCircle。或者您选择的任何其他情况。