Vježbe 2

Koordinatni sustavi i transformacije prije iscrtavanja

1. Nacrtajte graf funkcije sinus uz pomoć matričnih transformacija implementiranih u zadatku 1.3 (1 se odnosi na Vježbe 1).   applet   source
2. Implementirajte klasu GKS (globalni koordinatni sustav) koja omogućava crtanje u globalnim koordinatama sa slijedećim metodama:
  1. idiNa(double x, double y) – postavlja "olovku" na poziciju x, y u globalnim koordinatama
  2. povuciDo(double x, double y) – povlači liniju od posljednje zapamćene pozicije do x, y u globalnim koordinatama (transformaciju iz globalnih koordinata u koordinate prozora klasa mora izvesti automatski)
  3. trans(MT2D m) – zadaje se matrica transformacije koja se primjenjuje prije crtanja u globalnim koordinatama (to je zapravo transformacija iz lokalnih u globalne koordinate); MT2D (ili slično) je klasa matričnih transformacija implementiranih u zadatku 1.3
  4. postaviBoju(Color c) – postavlja boju "olovke"
  5. konstruktor: GKS(Graphics g, double xmin, double ymin, double xmax, double ymax, int xsize, int ysize) – sa (xmin, ymin) zadaje se donji, a sa (xmax, ymax) gornji ugao globalnog koordinatnog sustava; veličina prozora (appleta) nužna je da bi se mogle izračunati odgovarajuće transformacije iz globalnih u koordinate prozora.
3. Nacrtajte graf funkcije sinus uz pomoć metoda klase GKS iz prethodnog zadatka.   applet   source
4. Riješite zadatak 1.4 uz pomoć metoda iz klasa MT2D i GKS.   applet   source
5. Koristeći jednostavne geometrijske likove (pravokutnike, kružnice, elipse, etc.) nacrtajte lokomotivu (kamion, automobil ili slično) u crnoj boji. Potom crvenom bojom nacrtajte pravac y = 3 x + 6, te u plavoj boji nacrtajte lokomotivu koja se zrcali na tom pravcu (upotrijebite metode klasa MT2D i GKS).   applet