2 / 2 / 1
Регистрация: 27.05.2015
Сообщений: 78
|
|
1 | |
Нарисовать рекурсивный узор с картинки18.06.2015, 20:38. Показов 4090. Ответов 12
Метки нет (Все метки)
Помогите пожалуйста нарисовать через рекурсию этот узор:
Желательно на C++ Builder Очень буду благодарен (Кому не трудно )
0
|
18.06.2015, 20:38 | |
Ответы с готовыми решениями:
12
Начертить узор, повторяющий узор, узор образован 20 вложенными квадратами Начертить узор, повторяющий узор, узор образован 20 вложенными квадратами Нарисовать узор Нарисовать узор |
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
19.06.2015, 12:06 | 3 |
Почтальон, по формуле каждый дурак сможет.
0
|
20.06.2015, 16:36 | 5 |
Я не представляю зачем тут рекурсия. Возможно, потому что не умею рисовать фракталы. Решил сделать в лоб, то есть сначала нарисовать кружки, а потом зигзаговые плавные кривые (в виде S). По моему расчёту нужна функция, которая принимает координаты двух точек и рисует между этими точками кривую в виде быквы S. Пока нарисовал кружки:
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
23.06.2015, 15:58 | 6 |
На рисунке изображено двадцать четыре окружности. И нарисованы они по замкнутой спирали. Просто двенадцать из них разорваны. То есть функция, рисующая одну окружность, вызвана двадцать четыре раза. Рекурсивный вызов здесь, как я думаю, служит для передачи текущих параметров, то есть точки, в которой мы закончили, в очередной вызов функции.
Убил кучу времени, нарисовал кучу цветочков, но формулу так и не подобрал.
2
|
Почтальон
|
23.06.2015, 16:01
#7
|
0
|
23.06.2015, 17:47 | 8 | |||||
Кстати, есть идея. Кривые на рисунке представляют из себя кривые в форме быквы S. Я нашёл, что формулой для них - кривая Безье. Не знаю есть ли в билдере эти кривые, а в C# есть:
Кликните здесь для просмотра всего текста
Если бы попробовать из двух кривых Безье создать S кривую, а то с одной получается так:
0
|
Супер-модератор
|
|
23.06.2015, 17:54 | 9 |
Они в WinAPI есть: PolyBezier
1
|
2 / 2 / 1
Регистрация: 27.05.2015
Сообщений: 78
|
|
24.06.2015, 00:36 [ТС] | 10 |
0
|
24.06.2015, 01:55 | 11 |
Как я понял, рекурсия для решения применяется, как замена циклу.
Поправлю себя. Нет необходимости соединять две кривых Безье, чтобы увеличить гибкость, так как можно использовать WinAPI функцию, в которую передаётся массив из точек, как можно увидеть по ссылке, что приводили выше. Кривую тогда можно будет изгибать под нужную форму:
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
||||||
24.06.2015, 11:21 | 12 | |||||
Lolka1996, нет уж дудки.
На самом деле я понял как можно нарисовать данную фигуру. Никакие Безье тут не нужны. Это график эпициклоиды. Кликните здесь для просмотра всего текста
Но только эпициклойды со скольжением. Остался вопрос как сделать скольжение. То есть вращение заданной точки в обратную сторону движения катящейся окружности.
1
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
||||||
26.06.2015, 08:25 | 13 | |||||
Так, значит. Зачем тут рекурсия я придумал. Осталось только подобрать коэффициенты (w и R). Ну и глубину рекурсии соответственно.
0
|
26.06.2015, 08:25 | |
26.06.2015, 08:25 | |
Помогаю со студенческими работами здесь
13
Нарисовать узор на Canvas Нарисовать узор из колец Нарисовать узор из зигзагов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |