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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2008, 21:30   #1
Alexsandr08
 
Регистрация: 27.05.2008
Сообщений: 4
Восклицание Графика+рекурсия

Люди! Срочно нужно решить следующие задачи с помощбю рекурсии на Паскале.

1)Наборы последовательно выводимых отрезков с изменением их ориентации

Начиная от точки x, y путем последовательного построения отрезков с постепенным изменением их длины L и угла ориентации ugol можно строить различные спиралевидные узоры, варьируя приращения длины dL и угла du.
Например


Соответствующая рекурсивная процедура будет иметь приведенный ниже набор параметров
PROCEDURE OTREZOK(x,y, L,dL, ugol, du: integer);


2)Кружева

При построении узоров, напоминающих кружева, необходимо задать размер "стежка" - короткой линии длиной dl, и функцию варьирования угла перемещения ugol в зависимости от номера шага n.

Например, можно использовать слудующую рекурсивную процедуру для построения 500 стежков по окружности
PROCEDURE ANGLE_1(x,y: integer);
begin
inc(n); { счетчик стежков узора }
base_ug:=2*pi*n/500; { базовое направление рисования - окружность }
{наложение пульсаций на базовое направление }
ugol:=base_ug + a*sin( b*base_ug);
{ координаты конца очередного стежка}
x1:=round( x +dl*cos(ugol));
y1:=round( y +dl*sin(ugol));
Line(x,y, x1,y1); { строим стежок }
{ условие прекращения рекурсии }
if n<=500 then ANGLE_1( x1,y1)
end;
Alexsandr08 вне форума Ответить с цитированием
Старый 28.05.2008, 19:38   #2
Alexsandr08
 
Регистрация: 27.05.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Alexsandr08 Посмотреть сообщение
Люди! Срочно нужно решить следующие задачи с помощбю рекурсии на Паскале.

1)Наборы последовательно выводимых отрезков с изменением их ориентации

Начиная от точки x, y путем последовательного построения отрезков с постепенным изменением их длины L и угла ориентации ugol можно строить различные спиралевидные узоры, варьируя приращения длины dL и угла du.
Например


Соответствующая рекурсивная процедура будет иметь приведенный ниже набор параметров
PROCEDURE OTREZOK(x,y, L,dL, ugol, du: integer);


2)Кружева

При построении узоров, напоминающих кружева, необходимо задать размер "стежка" - короткой линии длиной dl, и функцию варьирования угла перемещения ugol в зависимости от номера шага n.

Например, можно использовать слудующую рекурсивную процедуру для построения 500 стежков по окружности
PROCEDURE ANGLE_1(x,y: integer);
begin
inc(n); { счетчик стежков узора }
base_ug:=2*pi*n/500; { базовое направление рисования - окружность }
{наложение пульсаций на базовое направление }
ugol:=base_ug + a*sin( b*base_ug);
{ координаты конца очередного стежка}
x1:=round( x +dl*cos(ugol));
y1:=round( y +dl*sin(ugol));
Line(x,y, x1,y1); { строим стежок }
{ условие прекращения рекурсии }
if n<=500 then ANGLE_1( x1,y1)
end;
Вот картинки этих фигур
Изображения
Тип файла: gif spirali.gif (3.8 Кб, 135 просмотров)
Тип файла: gif steg1.gif (2.5 Кб, 128 просмотров)
Тип файла: gif steg2.gif (2.6 Кб, 131 просмотров)
Alexsandr08 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия. p@ul Помощь студентам 4 30.12.2009 14:46
Рекурсия vitekbest Помощь студентам 1 30.05.2008 22:22
Рекурсия АнНютик Паскаль, Turbo Pascal, PascalABC.NET 1 29.01.2008 22:50
Рекурсия Pravednik Помощь студентам 3 21.01.2008 14:18
Рекурсия Xeon332 Помощь студентам 5 16.01.2008 20:52