Как вы зациклите сплайн в POV-Ray?

Вздох! Я бы хотел, чтобы это сработало:

// Spline Sine
#declare SphereSine = union {
    #local Radius = 0.15;
    #local Amplitude = 2;
    #local Iterator = 0;
    #local Amount = 20;
    sphere_sweep {
        b_spline
        Amount,

        #for (Iterator, 0, Amount, 1)
            <Iterator, sin(Iterator)*Amplitude, 0>, Radius
        #end

        tolerance 0.1
        pigment {
            rgb <1, 0, 0>
        }
    }
}

Есть ли способы автоматизировать добавление точек к сплайну в POV-Ray, поэтому мне не нужно добавлять точки вручную? Есть ли другие альтернативы?

2 ответа

Вы можете написать собственный макрос, чтобы обернуть for Цикл и сократить код до одной строки, скажем, points(0.15, 2, 20);, В противном случае, если вы ищете что-то наподобие встроенного ключевого слова для указания количества точек или функции генерации точек, я боюсь, что нет доступных вариантов из коробки.

жаль что поздно...

проблема в том, что вы указали количество 20, но внутри цикла есть 21 значение (от 0 до 20).

ваше решение действительно работает! просто измени

#for (Итератор, 0, Сумма, 1)

с

#for (Итератор, 0, Сумма-1, 1)

Другие вопросы по тегам