Рекурсивная функция перебора всех возможных вариаций углов у ломаной
Столкнулся с проблемой: Имеется ломанная линия, состоящая из отрезков различной длины и углов, на которые эти отрезки могут свободно двигаться. В поставленной мне задаче, необходимо сделать некие расчеты для каждой возможной точки окончания данной ломаной. Проблема состоит в том, что не могу логически продумать, как можно написать рекурсивную функцию, которая для n соединений отрезков проходила бы по всем возможным вариациям поворота данных углов.
Приведу пример: Имеется 4 отрезка ломанной, попарно соединённые тремя "шарнирными соединениями", которые максимум могут поворачиваться на thetta1_ = 15, thetta2_ = 60, thetta3 = 45 градусов. Мне нужно перебрать все возможные состояния данных трёх углов (на самом деле не все, скорее всего буду каждый из углов делить на 6, или брать какое-то фиксированное и перебирать состояния каждого угла на полученное значение, дабы не нагружать через чур долго проц при больших значениях n ), то есть, например, ( 0, 0, 5 ), ( 0, 0, 10 ), ( 0, 0, 15), ( 0, 5, 0 ), ( 0, 5, 5 ) и т.д.
Иначе говоря, чтобы результат работы подобной функции для n = 3, был по логике похож на
for (float angl1_ = 0; angl1_ <= thetta1_; angl1_ += 15)
{
for (float angl2_ = 0; angl2_ <= thetta2_; angl2_ += 15)
{
for (float angl3_ = 0; angl3_ <= thetta3_; angl3_ += 15)
{
DoSomething( angl1_, angl2_, angl3_ );
}
}
}
Надеюсь, что адекватно смог изложить суть проблемы.