|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2008, 18:48 | #1 |
Регистрация: 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) |
31.05.2008, 19:50 | #2 |
Регистрация: 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] |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить задачи по Паскалю! | 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 |