L-System - Уменьшить радиус цилиндра для новых веток

У меня есть простая 3D L-система, сделанная из цилиндров, и в настоящее время я просто прохожу каждый символ в финальной строке и выполняю соответствующие действия, такие как рисование, поворот, вращение, толчок и выдвижение. Я знаю, что push и pop очень похожи на новую ветку, но я пытался изменить радиус при каждом вызове push, но это приводит к странным результатам.

У кого-нибудь есть правильный способ сделать более новые ветви тоньше, чем предыдущие?

Благодарю.

    else if((*it) == Push)
    {
       Radius -= 0.1f;
       PushMatrix();
    }
    else if((*it) == Pop)
    {
       Radius += 0.1f;
       PopMatrix();
    }

1 ответ

Решение

Вам также необходимо сбросить положение черепахи обратно в точку ветки.

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