home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 July / Chip_1998-07_cd.bin / tema / sgp / sgpdemo / PRIKLAD5.SGP < prev    next >
Text File  |  1998-04-22  |  10KB  |  233 lines

  1. SGPC   5.00 S#000000  5.10.1995 14:47:35                                        StructNo 0   0
  2.  
  3. # include <sgpbalt.h>
  4.  
  5. ;-h------------------------------------------------------------------------
  6. /***** globalni promenne *****/
  7. #define    pocetelips       3
  8. #define    velikostelipsy   20
  9. #define    rychlostrotace   10
  10. #define    delkaelipsy      10
  11.  
  12. ;-h---------------------------------------------------------------------------
  13. /***** hlavni program *****/
  14. void main( void )
  15. -s--DEMO4                                                                       ■   2  -2   0 259
  16.                                  _______DEMO4_______
  17.                               Zacatek Prostredek Konec
  18.                                 0!        *        !]
  19.                                          Cele
  20.                                          p!
  21.                                           *6
  22.                                         Vystup
  23.                                         rf!q
  24.                        __________________Demo__________________
  25.                      Velke                     ____________Vsechno_____________
  26.                        /:vystup~Je~1          Body    Cary Obdelniky  "Vymaz  │
  27.          _____________okno_____________   aCHOk! fCIOak! fCJOak!      ak!f    │
  28.      ___Auto__      __Auto2__      _Elipsy_    *3      *9      *9       *5    │
  29.   Priprava Jizda Priprava Jizda Priprava Demo Bod     Cara  Obdelnik Obdelnik │
  30. fCEOg!   CFOa!     f!    DaQ!9   f3!  CGOa!   j!al   Bo!al   Bm!al     n!al   │
  31.              *2             *2     *1     *0                                  │
  32.           _Pozice         Pozice Elipsa  Krok     ____________________________│
  33.          Auto Dalsi       Ph!a  d78!4    3!ea    Osy     SIN     COS      Pismo
  34.          i!    h!a                        *1     u! aCKOkt! aCLOkw!xf aCMOkz!f
  35.                                           │               *7      *7        *8
  36.                                           │              Bod     Bod       Bod
  37.                                           │              s!al    v!al     Ay!al
  38.                                           │
  39.                      ___________________Elipsa__________________
  40.                    Stara   Posun~X     Posun~Y   Nova   Novy Dalsi
  41.                    elipsa  /0    /     /1    /  elipsa posun? 4!
  42.                     b!   Volno Okraj Volno Okraj c!    X   Y
  43.                           1!   51!    2!   62!         /2  /2
  44.                                                       Ano Ano
  45.                                                       7!  8!
  46. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  47. 0 /* promenne <var> */ int a, b, c, d, e, f, g, h, i, j, Klávesa;
  48.           /* realne */ double r, r2;
  49.                        int cisloelipsy,pozicex[pocetelips+1][delkaelipsy+1],pozicey[pocetelips+1][delkaelipsy+1];
  50.                        int posunx[pocetelips+1];
  51.                        int posuny[pocetelips+1];
  52.                        int uhel;
  53.                        int barva[pocetelips+1];
  54.                        int x;
  55.                        int vystup;
  56.                        TypAnimP²edm╪t Auticko;
  57.   barva[1]=14;
  58.   barva[2]=1;
  59.   barva[3]=11;
  60.   Vytvo²Prostor();
  61.   RychlostBaltazara(9);
  62.   GrNastavV∞stup(1);
  63.   GrNastavBarvuPozadí(0);
  64.   GrNastavV∞plσ(0);
  65.   GrSmaºOkno();
  66.   GrNastavV∞stup(0);
  67.   GrNastavBarvuPozadí(0);
  68.   GrSmaºOkno();
  69. 1 ;Zvetseni x-ove souradnice elipsy o x-ovy posun,smazani,vykresleni
  70.   for(i=delkaelipsy-1;i>=1;--i) pozicex[cisloelipsy][i+1]=pozicex[cisloelipsy][i];
  71.   pozicex[cisloelipsy][1]=pozicex[cisloelipsy][1]+posunx[cisloelipsy];
  72. 2 ;Zvetseni y-ove souradnice elipsy o y-ovy posun,smazani,vykresleni
  73.   for(i=delkaelipsy-1;i>=1;--i) pozicey[cisloelipsy][i+1]=pozicey[cisloelipsy][i];
  74.   pozicey[cisloelipsy][1]=pozicey[cisloelipsy][1]+posuny[cisloelipsy];
  75. 3 ;Nastaveni promennych
  76.   cisloelipsy=1;
  77. 4 ++cisloelipsy;
  78. 5 ;Zmena x-oveho posunu
  79.   posunx[cisloelipsy]=-1*posunx[cisloelipsy];
  80. 6 ;Zmena y-oveho posunu
  81.   posuny[cisloelipsy]=-1*posuny[cisloelipsy];
  82. 7 ;Vygenerovani noveho posunux
  83.   i=Náhodné¼íslo(10)-5;
  84.   if (i<=0) i=i-2;
  85.             else i=i+2;
  86.   posunx[cisloelipsy]=i;
  87. 8 ;Vygenerovani noveho posunuy
  88.   i=Náhodné¼íslo(10)-5;
  89.   if (i<=0) i=i-2;
  90.             else i=i+2;
  91.   posuny[cisloelipsy]=i;
  92. 9 AnimP²edm╪tZruτ(Auticko);
  93. ] ZruτProstor()
  94. a Klávesa= ¼tiKlávesuZFronty()
  95. b ;Smazani elipsy
  96.   GrNastavBarvuPop²edí(0);
  97.   GrKresliElipsu(pozicex[cisloelipsy][delkaelipsy],pozicey[cisloelipsy][delkaelipsy],(uhel-
  98.   rychlostrotace*(delkaelipsy))/57.3,(uhel+180-rychlostrotace*(delkaelipsy))/57.3,velikostelipsy,velikostelipsy);
  99. c ;Vykresleni elipsy
  100.   GrNastavBarvuPop²edí(barva[cisloelipsy]);
  101.   GrKresliElipsu(pozicex[cisloelipsy][1],pozicey[cisloelipsy][1],uhel/57.3,(uhel+180)/57.3,velikostelipsy,velikostelipsy);
  102. d ;Vygenerovani startovni pozice
  103.   pozicex[cisloelipsy][1]=Náhodné¼íslo(GrMaxX()-40)+20;
  104.   pozicey[cisloelipsy][1]=Náhodné¼íslo(GrMaxY()-40)+20;
  105. e ;Zvetseni uhlu(pootoceni)
  106.   uhel=uhel+rychlostrotace;
  107. f ;Vymaz GrOkna
  108.   GrNastavBarvuPozadí(0);
  109.   GrSmaºOkno();
  110.   uhel=20;
  111. g ;Nastaveni promennych
  112.   x=273;
  113.   for (i=1;i<10;++i) ¼arujNaPozici(150,i,10);
  114.   NastavPoziciBaltazara(1,10);
  115.   RychlostBaltazara(4);
  116.   Viditeln∞();
  117.   Popojdi(6);
  118.   SObláƒkem();
  119.   ¼aruj(22);
  120.   RychlostBaltazara(9);
  121. h --x
  122. i ;Vykresleni auta
  123.   GrKresliP²edm╪t(22,0,x,261);
  124. j ;Vykresleni bodu na nahodne pozici s nahodnou barvou
  125.   GrKresliBod(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(14)+1);
  126. k i=0;
  127.   GrNastavBarvuPozadí(0);
  128.   GrNastavBarvuPop²edí(0);
  129. l ++i;
  130. m ;Vykresleni obdelniku na nahodne pozici s nahodnou barvou a velikosti
  131.   GrNastavBarvuPozadí(Náhodné¼íslo(14)+1);
  132.   GrKresliVypln╪n∞Obdélník(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()));
  133. n GrKresliObdélník(integer(GrMaxX()/2)-i,integer(GrMaxY()/2)-i,integer(GrMaxX()/2)+i,integer(GrMaxY()/2)+i);
  134. o ;Vykresleni linek na nahodne pozici s nahodnou barvou a velikosti
  135.   GrNastavBarvuPop²edí(Náhodné¼íslo(14)+1);
  136.   GrKresliLinku(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()));
  137. p vystup=1;
  138. q --vystup;
  139. r GrNastavV∞stup(vystup);
  140. s ;Vypocet a vykresleni casti SINu
  141.   r=GrMaxY()-(sin(i*2*Pí/GrMaxX())*GrMaxY()/2+GrMaxY()/2);
  142.   GrKresliLinkuDo(i,integer(r));
  143. t ;Nastaveni promennych,barvy
  144.   GrNastavBarvuPop²edí(14);
  145.   GrNastavPozici(0,integer(GrMaxY()/2));
  146. u ;Vykresleni souradnic pro SIN a COS
  147.   GrNastavBarvuPop²edí(15);
  148.   GrKresliLinku(0,0,0,GrMaxY());
  149.   GrKresliLinku(0,GrMaxY()/2,GrMaxX(),GrMaxY()/2);
  150. v ;Vypocet a vykresleni casti COSinu
  151.   r=GrMaxY()-(cos(i*2*Pí/GrMaxX())*GrMaxY()/2+GrMaxY()/2);
  152.   GrKresliLinkuDo(i,integer(r));
  153. w ;Nastaveni promennych,barvy
  154.   GrNastavBarvuPop²edí(11);
  155.   GrNastavPozici(0,0);
  156. x ¼ekej(1000)
  157. y ;Nastaveni pozice,vypis textu
  158.   GrKresliVypln╪n∞Obdélník(GrMaxX()-i-1,GrMaxY()-abs(sin(i*10*Pí/160)*12)-18,
  159.   GrMaxX(),GrMaxY()-abs(sin(i*4*Pí/160)*12)+10);
  160.   GrNastavPozici(GrMaxX()-i-1,GrMaxY()-abs(sin(i*4*Pí/160)*12)-7);
  161.   GrPiτⁿet╪zec("SGP Systems");
  162. z ;Nastaveni barvy
  163.   GrNastavBarvuPop²edí(12);
  164. A ¼ekej(5);
  165. B ¼ekej(30);
  166. C GrNastavV∞stup(abs(vystup-1));
  167.   GrNastavBarvuPop²edí(14);
  168.   GrNastavBarvuPozadí(0);
  169.   GrSmaºOkno();
  170.   GrNastavPozici(0,0);
  171. D Auticko=AnimP²edm╪tVytvo²(22,1,0,1);
  172. E GrPiτⁿet╪zec("SGP Baltazar 5.0               ");
  173. F GrPiτⁿet╪zec("Ukázka animace                 ");
  174. G GrPiτⁿet╪zec("Kreslení elips                 ");
  175. H GrPiτⁿet╪zec("Kreslení bodà                  ");
  176. I GrPiτⁿet╪zec("Kreslení ƒar                   ");
  177. J GrPiτⁿet╪zec("Kreslení vypln╪n∞ch obdélníkà  ");
  178. K GrPiτⁿet╪zec("Funkce SIN                     ");
  179. L GrPiτⁿet╪zec("Funkce SIN, funkce COS         ");
  180. M GrPiτⁿet╪zec("TEXT                           ");
  181. O GrNastavV∞stup(vystup);
  182. P ;Vykresleni pozadi
  183.   AnimP²edm╪tAnimuj(Auticko,x,261,0);
  184. Q ;Priprava prostoru, promennych
  185.   x=300;
  186.   ¼arujNaPozici(27,1,10);
  187.   ¼arujNaPozici(51,2,10);
  188.   ¼arujNaPozici(34,3,10);
  189.   ¼arujNaPozici(3,4,10);
  190.   ¼arujNaPozici(4,5,10);
  191.   ¼arujNaPozici(6,4,9);
  192.   ¼arujNaPozici(7,5,9);
  193.   ¼arujNaPozici(39,6,10);
  194.   ¼arujNaPozici(58,7,10);
  195.   ¼arujNaPozici(12,8,10);
  196. ;R ;Nacteni pozadi, vykresleni auta
  197.   GrNastavObrazP²edm╪tu(148,x,261,0);
  198.   GrKresliP²edm╪t(22,1,x,261);
  199. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  200. /0 ((pozicex[cisloelipsy][1]+posunx[cisloelipsy])>0)&&((pozicex[cisloelipsy][1]+posunx[cisloelipsy])<GrMaxX())
  201. /1 ((pozicey[cisloelipsy][1]+posuny[cisloelipsy])>0)&&((pozicey[cisloelipsy][1]+posuny[cisloelipsy])<GrMaxY())
  202. /2 Náhodné¼íslo(200)==6
  203. /n Neplatí Pràchodn∞P²edm╪t()
  204. /p Pràchodn∞P²edm╪t()
  205. /B Barva¼tverceP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
  206. /P P²edm╪tP²edBaltazarem()      /* Je, Není, <, >, <= ,>= */
  207. /S Sm╪rBaltazara()             /* Je, Není, <, >, <= ,>= */
  208. *0 (uhel<3000)&&(Klávesa==0)
  209. *1 cisloelipsy<=pocetelips
  210. *2 (x>0)&&(Klávesa==0)
  211. *3 (i<5000)&&(Klávesa==0)
  212. *4 (i<500)&&(Klávesa==0)
  213. *5 (i<340)&&(Klávesa==0)
  214. *6 vystup>=0
  215. *7 (i<=GrMaxX())&&(Klávesa==0)
  216. *8 (i<=GrMaxX()+420)&&(Klávesa==0)
  217. *9 (i<100)&&(Klávesa==0)
  218. *n /* delej kdyz Je   */ Neplatí Pràchodn∞P²edm╪t()
  219. *p /* delej kdyz Je   */ Pràchodn∞P²edm╪t()
  220. *B /* delej kdyz      */ Barva¼tverceP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
  221. *P /* delej kdyz      */ P²edm╪tP²edBaltazarem()      /* Je, Není, <, >, <= ,>= */
  222. *S /* delej kdyz      */ Sm╪rBaltazara()             /* Je, Není, <, >, <= ,>= */
  223. #A /* delej od m do n s krokem k pro promennou var  - zapis #A:(var,m,n,k) */
  224.       OdDoKrok
  225. #D /* delej od m dolu do n s krokem k pro prom. var - zapis #D:(var,m,n,k) */
  226.       OdDolàDoKrok
  227. #N /* delej n-krat vzestupne pro promennou var      - zapis #N:(var,n)     */
  228.       Od0
  229. #M /* delej n-krat sestupne pro promennou var       - zapis #M:(var,n)     */
  230.       DolàDo0
  231. =SP---------------------------------------------------------------------------
  232. /***** konec programu *****/
  233.