L-System - Уменьшить радиус цилиндра для новых ветвей - PullRequest
1 голос
/ 15 ноября 2011

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

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

Спасибо.

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

1 Ответ

0 голосов
/ 11 сентября 2012

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

...