为什么这个递归函数仍然会导致堆栈溢出?

时间:2021-01-14 18:42:21

标签: c++ recursion stack-overflow

为什么这个递归函数还是会导致栈溢出?

void DrawSierpinskiTriangle(const Point2f& left, const Point2f& top, const Point2f& right)
{

    if (right.x - left.x <= 100)
    {
        return;
    }

    DrawTriangle(left, top, right);

    SetColor(0, 1, 0);
    DrawSierpinskiTriangle(Point2f{ right.x / 4.f,top.y / 2.f }, top, Point2f{ right.x / 4.f * 3,top.y / 2.f });

    SetColor(0, 0, 1);
    DrawSierpinskiTriangle(Point2f{ right.x / 2,left.y }, Point2f{ right.x / 4.f * 3,top.y / 2.f }, right);

    SetColor(1, 0, 0);
    DrawSierpinskiTriangle(left, Point2f{ top.x / 2.f,top.y / 2.f }, Point2f{ top.x,left.y });

}

0 个答案:

没有答案