为什么这个递归函数还是会导致栈溢出?
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 });
}