Это сами фигуры Лиссажу. Тут вроде все нормально.
| Код | 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;
|
Заранее спасибо за помощь. |