7. vje~zbe iz C-a -- 1. zadatak

✓XHTML1

U datoteci "poligon.in" nalaze se koordinate vrhova poligona. Koordinate su sve cjelobrojne, izme~du 0 i 20, i sve stranice poligona su paralelne koordinatnim osima: to zna~ci da izme~du svaka dva susjedna vrha (a,b) i (c,d) morate ubaciti to~cku (c,b)! Va~s program treba:

  1. u~citati datoteku poligon.in, ubacuju~ti me~duto~cke na ispravnim mjestima [za pola boda manje, ne morate ubacivati me~duto~cke, ve~t mo~zete pretpostaviti da su izvorne to~cke zadane tako da stranice poligona ve~t budu paralelne koordinatnim osima]
  2. Popuniti matricu 21x21 to~ckama ruba tog poligona
  3. odrediti dobre parametre za plenv (najmanju i najve~tu x i y koordinatu svih to~caka) [za pola boda manje, ne morate to ~ciniti, ve~t postavite plenv na [0,20]x[0,20]]
  4. nacrtati poligon funkcijom plline [za pola boda manje, nacrtajte ga kako ~zelite -- na primjer, for petljom i funkcijom pljoin]
  5. pitati korisnika za koordinate neke to~cke (izme~du 0 i 20) -- ovo mo~zete u~ciniti i prije crtanja, ako vam je tako prirodnije
  6. ustanoviti je li ta to~cka unutar ili izvan poligona [ovo je najte~zi dio - za jedan bod manje, ne morate to raditi, ve~t mo~zete pretpostaviti da je to~cka unutar poligona]
  7. Ako to~cka jest unutra, flood-fill algoritmom popuniti unutra~snjost poligona u gore spomenutoj matrici
  8. Nacrtati sve cjelobrojne to~cke koje su postavljene u matrici, na ekranu. [za pola boda manje, ne morate crtati u plplotu, ve~t samo ispi~site matricu na ekran]

Stog mo~zete implementirati standardno pomo~tu polja.

Opis flood-fill algoritma: