我正在尝试绘制分形:对于每个圆圈,我都想在该圆圈的左侧和右边画一半的圆。这是我的代码:
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;;
它编译了,但是当我运行时,我会得到堆栈溢出。问题是为什么以及如何在此功能中修复它?
您的代码没有任何终止递归的条件。
例如,当r == 1像素时,请勿再次调用drawcircle。或您选择的任何其他情况。