home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 July / Chip_1997-07_cd.bin / tema / baltazar / sgpbc / demo2.sgp < prev    next >
Text File  |  1997-05-19  |  10KB  |  234 lines

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