next up previous
Naprej: Porocilo Gor: Prikaz rezultatov Nazaj: Prikaz rezultatov

Animacija

Za graficen prikaz rezultatov v programu uporabite GKS [2] graficni jezik. V ta namen uporabite homogene matrike in homogene transformacije. Ker bi risanje vzmeti in dusilk v treh dimenzijah vzelo prevec casa (nasega in racunalnikovega), bomo vzmeti risali z rdecu barvo, dusilke pa z zeleno.

Program za animacijo mora brati direktno datoteko podatkov in sproti prikazovati gibanje sistema. S tem vnesemo dodatne zakasnitve v program. Animator mora izpisovati trenutni cas, da lahko ocenimo lastna nihanja sistema.

Na zahtevo mora program izpisati tudi vozlisca in povezave (npr. rumeno). Omogocati mora tudi ogled sistema s poljubnega zornega kota (rotacija, translacija in skaliranje v homogenih koordinatah).

Osnovni program, ki demonstrira uporabo jezika GKS je:

      program GKS skeleton
      implicit none
      real x(3)  /-200.0, 350.0, 250.0/
      real y(3)  /-200.0, 300.0,-250.0/
      real kx(2) /0.0, 100.0/
      real ky(2) /50.0, 120.0/
      character*80 datrec(1)

c     Odpre GKS (Gks OPen gKS)
      call gopks()

c     Nastavitev zaslonskih koordinat 
c     (Gks Set WorKstation ViewPort)
      call gswkvp(1, 20.0, 50.0, 600.0, 450.0)

c     Nastavitev uporabniskega koord. sistema 
c     (Gks Set WiNdow)
      call gswn(1, -300.0, -300.0, 400.0, 400.0)

c     Izris lika z dvema crtama 
c     (GksSetPolyLineColorIndex, GksPolyLine)
c     Indeksi:1 modra, 2 zelena, 3 cyan, 4 rdeca,
c             5 violicna, 6 rjava, 7 bela, 8 siva,
c             9 svetlomodra, ..., 14 rumena, 15
      call gsplci(3)
      call gpl(3, x, y)

c     Izris teksta (GksSetCharacterHeight, 
c     ...TextColorIndex, GksTeXt)
      call gstxci(14)
      call gschh(20)
      call gtx(-250.0, 300.0, 'GKS skeleton')

c     Izris kroga 
c     (Generalized Drawing Primitive)
      call gdp(2, kx, ky, -1, 1, datrec)

c     Zapre GKS (Gks CLose gKS)
      call gclks()
      end

Animacijo sistema izvedemo tako, da po prebranih podatkih za dolocen cas izrisemo na zaslon sistem, preberemo nove podatke, zbrisemo staro stanje tako, da risemo s crnim peresom, ter narisemo novo stanje. Postopek seveda ponavljamo dokler ga lahko.



Leon Kos
Mon Oct 9 07:47:31 GMT+0100 1995