L-System - Уменьшить радиус цилиндра для новых веток
У меня есть простая 3D L-система, сделанная из цилиндров, и в настоящее время я просто прохожу каждый символ в финальной строке и выполняю соответствующие действия, такие как рисование, поворот, вращение, толчок и выдвижение. Я знаю, что push и pop очень похожи на новую ветку, но я пытался изменить радиус при каждом вызове push, но это приводит к странным результатам.
У кого-нибудь есть правильный способ сделать более новые ветви тоньше, чем предыдущие?
Благодарю.
else if((*it) == Push)
{
Radius -= 0.1f;
PushMatrix();
}
else if((*it) == Pop)
{
Radius += 0.1f;
PopMatrix();
}
1 ответ
Решение
Вам также необходимо сбросить положение черепахи обратно в точку ветки.