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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 16:09   #1
katbka
Пользователь
 
Регистрация: 06.09.2008
Сообщений: 17
По умолчанию Заливка фигур Лиссажу рекурсивным алгоритмом с затравкой. Pascal

Это сами фигуры Лиссажу. Тут вроде все нормально.
Код:
uses Graph,crt;

const
a=80;w1=2;w2=10;
var
driver,mode,x1,y1,x2,y2,t,color:integer;
procedure Figure(w1,w2:integer);
begin
 driver:=9;
 mode:=0;
 initgraph(driver,mode,'');
 for t:=1 to 1000 do
   begin
   setcolor(white);
   x1:=100+round(a*cos(w1*t / (180/Pi)));
   y1:=100+round(a*sin(w2*t / (180/Pi)));
   x2:=100+round(a*cos(w1*(t+1) / (180/Pi)));
   y2:=100+round(a*sin(w2*(t+1) / (180/Pi)));
   line(x1,y1,x2,y2);
   end;
end;
А вот с заливкой каждого сегмента у меня проблемы... Как определять принадлежит ли данная точка области фигуры, как определить что мы закрашиваем другую область?
Пишу так, но тут явно все коряво:

Код:
procedure Fill(x,y,color1,color2:integer);
begin
 driver:=9;
 mode:=0;
 initgraph(driver, mode,'');
 if((GetPixel(x,y) < > color1)and(GetPixel(x,y) < > color2))
 then
  begin
  PutPixel(x,y,color2);
  Fill(x+1,y,color1,color2);
  Fill(x,y+1,color1,color2);
  Fill(x-1,y,color1,color2);
  Fill(x,y-1,color1,color2);
  end;
end;
Заранее спасибо за помощь.

Последний раз редактировалось katbka; 28.10.2010 в 16:10. Причина: неправильно отображается
katbka вне форума Ответить с цитированием
Старый 08.11.2010, 00:11   #2
katbka
Пользователь
 
Регистрация: 06.09.2008
Сообщений: 17
По умолчанию

помогите пожалуйста...
katbka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построчный алгоритм заполнения многоугольника с затравкой (Билдер С++) SKA_zo4nik Помощь студентам 8 28.03.2011 20:15
реализовать соприкосновение 2 фигур (Turbo Pascal) liga16 Помощь студентам 2 21.12.2009 19:42
Кривые Лиссажу. Lazio Фриланс 4 05.05.2009 22:18
Проблема с рекурсивным закрашиванием. Переполнение стэка. prost Помощь студентам 7 02.06.2008 23:34