Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2013, 19:03   #1
alik98
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 54
По умолчанию Ошибка в методе рисующем дерево

Было дерево на рекурсии, которое рисовалось линиями - все работало нормально. Переделал под четырехугольники - дерево стало загибатся в сторону. Может кто-нибудь укажет на ошибку?



Код:
public void DrawTree(float length, float width, float angle, float x, float y, int depth = 0)
        {
            if (depth <= maxDepth - 3) 
            { GL.Color3(random.Next(50, 60) * 0.01f, random.Next(45, 50) * 0.01f, random.Next(25, 40) * 0.01f); }
            else 
            { GL.Color3(random.Next(5, 25) * 0.01f, random.Next(60, 80) * 0.01f, random.Next(20, 40) * 0.01f); }
            
            GL.Vertex2(x + (float)(width * Math.Cos(angle - 90)), y + (float)(width * Math.Sin(angle + 90)));
            GL.Vertex2(x + (float)(width * Math.Cos(angle + 90)), y + (float)(width * Math.Sin(angle - 90)));
            
            x += (float)(length * Math.Cos(angle * Math.PI / 180));
            y += (float)(length * Math.Sin(angle * Math.PI / 180));
            
            GL.Vertex2(x + (float)(width * dwidth * Math.Cos(angle + 90)), y + (float)(width * Math.Sin(angle - 90)));
            GL.Vertex2(x + (float)(width * dwidth * Math.Cos(angle - 90)), y + (float)(width * Math.Sin(angle + 90)));

            if (depth < maxDepth)
            {
                DrawTree(length *= dlength, width *= dwidth, angle - dangle, x, y, depth + 1);
                DrawTree(length *= dlength, width *= dwidth, angle + dangle, x, y, depth + 1);
            }
        }

Последний раз редактировалось alik98; 05.01.2013 в 19:06.
alik98 вне форума Ответить с цитированием
Старый 05.01.2013, 19:37   #2
alik98
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 54
По умолчанию

Нашел опечатку, исправил, все заработало. Модерация, удалите тему.
alik98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в методе половинного деления naty7773 Помощь студентам 1 03.12.2012 21:38
Где-то в методе касательных ошибка. Нужно найти president_ml Паскаль, Turbo Pascal, PascalABC.NET 0 08.12.2010 21:55
вывод на экран (дерево) ошибка ArniLand Общие вопросы по Java, Java SE, Kotlin 1 30.09.2010 00:16
ошибка в программе - дерево ArniLand Общие вопросы по Java, Java SE, Kotlin 3 21.09.2010 02:46