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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2008, 18:48   #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)
Alexsandr08 вне форума Ответить с цитированием
Старый 31.05.2008, 19:50   #2
Alexsandr08
 
Регистрация: 27.05.2008
Сообщений: 4
По умолчанию

Удалось решить первую задачу Только с кружевами загвоздка
Нужно сделать программу с данной процедурой, чтобы было возможно с помощью варьирования параметров получить узоры изображенные на рисунке
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)[/QUOTE]
Изображения
Тип файла: gif steg1.gif (2.5 Кб, 114 просмотров)
Тип файла: gif steg2.gif (2.6 Кб, 116 просмотров)
Тип файла: gif steg3.gif (2.0 Кб, 116 просмотров)
Alexsandr08 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачи по Паскалю! Brizon Паскаль, Turbo Pascal, PascalABC.NET 2 13.06.2008 14:28
Помогите решить задачи по Паскалю! Brizon Паскаль, Turbo Pascal, PascalABC.NET 1 09.06.2008 17:55
Пожалуйста помогите решить задачи по Паскалю Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 3 17.05.2008 22:41
Помогите решить задачи по Паскалю! Brizon Паскаль, Turbo Pascal, PascalABC.NET 9 06.05.2008 20:02