home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 July
/
Chip_1997-07_cd.bin
/
tema
/
baltazar
/
sgpbc
/
demo2.sgp
< prev
next >
Wrap
Text File
|
1997-05-19
|
10KB
|
234 lines
SGPC 3.15 S#400000 5.10.1995 14:47:35 StructNo 0 0
; Vytvoren ze vzoru: C:\SGP4\VZORBC.000
# include <baltazar.h>
;-h------------------------------------------------------------------------
/***** globalni promenne *****/
#define pocetelips 3
#define velikostelipsy 20
#define rychlostrotace 10
#define delkaelipsy 10
;-h---------------------------------------------------------------------------
/***** hlavni program *****/
void main( void )
-s--DEMO4 ■ 173 -2 0 259
_______DEMO4_______
Zacatek Prostredek Konec
0! * !]
Cele
p!
*6
Vystup
rf!q
__________________Demo__________________
Velke ____________Vsechno_____________
/:vystup~Je~1 Body Cary Obdelniky "Vymaz │
_____________okno_____________ aCHOk! fCIOak! fCJOak! ak!f │
___Auto__ __Auto2__ _Elipsy_ *3 *9 *9 *5 │
Priprava Jizda Priprava Jizda Priprava Demo Bod Cara Obdelnik Obdelnik │
fCEOg! CFOa! f! DaQ!9 f3! CGOa! j!al Bo!al Bm!al n!al │
*2 *2 *1 *0 │
_Pozice Pozice Elipsa Krok ____________________________│
Auto Dalsi Ph!a d78!4 3!ea Osy SIN COS Pismo
i! h!a *1 u! aCKOkt! aCLOkw!xf aCMOkz!f
│ *7 *7 *8
│ Bod Bod Bod
│ s!al v!al Ay!al
│
___________________Elipsa__________________
Stara Posun~X Posun~Y Nova Novy Dalsi
elipsa /0 / /1 / elipsa posun? 4!
b! Volno Okraj Volno Okraj c! X Y
1! 51! 2! 62! /2 /2
Ano Ano
7! 8!
-o1- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 /* promenne <var> */ int a, b, c, d, e, f, g, h, i, j, Klávesa;
/* realne */ double r, r2;
int cisloelipsy,pozicex[pocetelips+1][delkaelipsy+1],pozicey[pocetelips+1][delkaelipsy+1];
int posunx[pocetelips+1];
int posuny[pocetelips+1];
int uhel;
int barva[pocetelips+1];
int x;
int vystup;
TypAnimP²edm╪t Auticko;
barva[1]=14;
barva[2]=1;
barva[3]=11;
Vytvo²Prostor();
RychlostBaltazara(9);
GrNastavV∞stup(1);
GrNastavBarvuPozadí(0);
GrNastavV∞plσ(0);
GrSmaºOkno();
GrNastavV∞stup(0);
GrNastavBarvuPozadí(0);
GrSmaºOkno();
1 ;Zvetseni x-ove souradnice elipsy o x-ovy posun,smazani,vykresleni
for(i=delkaelipsy-1;i>=1;--i) pozicex[cisloelipsy][i+1]=pozicex[cisloelipsy][i];
pozicex[cisloelipsy][1]=pozicex[cisloelipsy][1]+posunx[cisloelipsy];
2 ;Zvetseni y-ove souradnice elipsy o y-ovy posun,smazani,vykresleni
for(i=delkaelipsy-1;i>=1;--i) pozicey[cisloelipsy][i+1]=pozicey[cisloelipsy][i];
pozicey[cisloelipsy][1]=pozicey[cisloelipsy][1]+posuny[cisloelipsy];
3 ;Nastaveni promennych
cisloelipsy=1;
4 ++cisloelipsy;
5 ;Zmena x-oveho posunu
posunx[cisloelipsy]=-1*posunx[cisloelipsy];
6 ;Zmena y-oveho posunu
posuny[cisloelipsy]=-1*posuny[cisloelipsy];
7 ;Vygenerovani noveho posunux
i=Náhodné¼íslo(10)-5;
if (i<=0) i=i-2;
else i=i+2;
posunx[cisloelipsy]=i;
8 ;Vygenerovani noveho posunuy
i=Náhodné¼íslo(10)-5;
if (i<=0) i=i-2;
else i=i+2;
posuny[cisloelipsy]=i;
9 AnimP²edm╪tZruτ(Auticko);
] ZruτProstor()
a Klávesa= ¼tiKlávesuZFronty()
b ;Smazani elipsy
GrNastavBarvuPop²edí(0);
GrKresliElipsu(pozicex[cisloelipsy][delkaelipsy],pozicey[cisloelipsy][delkaelipsy],(uhel-
rychlostrotace*(delkaelipsy))/57.3,(uhel+180-rychlostrotace*(delkaelipsy))/57.3,velikostelipsy,velikostelipsy);
c ;Vykresleni elipsy
GrNastavBarvuPop²edí(barva[cisloelipsy]);
GrKresliElipsu(pozicex[cisloelipsy][1],pozicey[cisloelipsy][1],uhel/57.3,(uhel+180)/57.3,velikostelipsy,velikostelipsy);
d ;Vygenerovani startovni pozice
pozicex[cisloelipsy][1]=Náhodné¼íslo(GrMaxX()-40)+20;
pozicey[cisloelipsy][1]=Náhodné¼íslo(GrMaxY()-40)+20;
e ;Zvetseni uhlu(pootoceni)
uhel=uhel+rychlostrotace;
f ;Vymaz GrOkna
GrNastavBarvuPozadí(0);
GrSmaºOkno();
uhel=20;
g ;Nastaveni promennych
x=273;
for (i=1;i<10;++i) ¼arujNaPozici(150,i,10);
NastavPoziciBaltazara(1,10);
RychlostBaltazara(4);
Viditeln∞();
Popojdi(6);
SObláƒkem();
¼aruj(22);
RychlostBaltazara(9);
h --x
i ;Vykresleni auta
GrKresliP²edm╪t(22,0,x,261);
j ;Vykresleni bodu na nahodne pozici s nahodnou barvou
GrKresliBod(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(14)+1);
k i=0;
GrNastavBarvuPozadí(0);
GrNastavBarvuPop²edí(0);
l ++i;
m ;Vykresleni obdelniku na nahodne pozici s nahodnou barvou a velikosti
GrNastavBarvuPozadí(Náhodné¼íslo(14)+1);
GrKresliVypln╪n∞Obdélník(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()));
n GrKresliObdélník(integer(GrMaxX()/2)-i,integer(GrMaxY()/2)-i,integer(GrMaxX()/2)+i,integer(GrMaxY()/2)+i);
o ;Vykresleni linek na nahodne pozici s nahodnou barvou a velikosti
GrNastavBarvuPop²edí(Náhodné¼íslo(14)+1);
GrKresliLinku(Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()),Náhodné¼íslo(GrMaxX()),Náhodné¼íslo(GrMaxY()));
p vystup=1;
q --vystup;
r GrNastavV∞stup(vystup);
s ;Vypocet a vykresleni casti SINu
r=GrMaxY()-(sin(i*2*Pí/GrMaxX())*GrMaxY()/2+GrMaxY()/2);
GrKresliLinkuDo(i,integer(r));
t ;Nastaveni promennych,barvy
GrNastavBarvuPop²edí(14);
GrNastavPozici(0,integer(GrMaxY()/2));
u ;Vykresleni souradnic pro SIN a COS
GrNastavBarvuPop²edí(15);
GrKresliLinku(0,0,0,GrMaxY());
GrKresliLinku(0,GrMaxY()/2,GrMaxX(),GrMaxY()/2);
v ;Vypocet a vykresleni casti COSinu
r=GrMaxY()-(cos(i*2*Pí/GrMaxX())*GrMaxY()/2+GrMaxY()/2);
GrKresliLinkuDo(i,integer(r));
w ;Nastaveni promennych,barvy
GrNastavBarvuPop²edí(11);
GrNastavPozici(0,0);
x ¼ekej(1000)
y ;Nastaveni pozice,vypis textu
GrKresliVypln╪n∞Obdélník(GrMaxX()-i-1,GrMaxY()-abs(sin(i*10*Pí/160)*12)-18,
GrMaxX(),GrMaxY()-abs(sin(i*4*Pí/160)*12)+10);
GrNastavPozici(GrMaxX()-i-1,GrMaxY()-abs(sin(i*4*Pí/160)*12)-7);
GrPiτⁿet╪zec("SGP Systems");
z ;Nastaveni barvy
GrNastavBarvuPop²edí(12);
A ¼ekej(5);
B ¼ekej(30);
C GrNastavV∞stup(abs(vystup-1));
GrNastavBarvuPop²edí(14);
GrNastavBarvuPozadí(0);
GrSmaºOkno();
GrNastavPozici(0,0);
D Auticko=AnimP²edm╪tVytvo²(22,1,0,1);
E GrPiτⁿet╪zec("SGP Baltazar 5.0 ");
F GrPiτⁿet╪zec("Ukázka animace ");
G GrPiτⁿet╪zec("Kreslení elips ");
H GrPiτⁿet╪zec("Kreslení bodà ");
I GrPiτⁿet╪zec("Kreslení ƒar ");
J GrPiτⁿet╪zec("Kreslení vypln╪n∞ch obdélníkà ");
K GrPiτⁿet╪zec("Funkce SIN ");
L GrPiτⁿet╪zec("Funkce SIN, funkce COS ");
M GrPiτⁿet╪zec("TEXT ");
O GrNastavV∞stup(vystup);
P ;Vykresleni pozadi
AnimP²edm╪tAnimuj(Auticko,x,261,0);
Q ;Priprava prostoru, promennych
x=300;
¼arujNaPozici(27,1,10);
¼arujNaPozici(51,2,10);
¼arujNaPozici(34,3,10);
¼arujNaPozici(3,4,10);
¼arujNaPozici(4,5,10);
¼arujNaPozici(6,4,9);
¼arujNaPozici(7,5,9);
¼arujNaPozici(39,6,10);
¼arujNaPozici(58,7,10);
¼arujNaPozici(12,8,10);
;R ;Nacteni pozadi, vykresleni auta
GrNastavObrazP²edm╪tu(148,x,261,0);
GrKresliP²edm╪t(22,1,x,261);
-c1- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/0 ((pozicex[cisloelipsy][1]+posunx[cisloelipsy])>0)&&((pozicex[cisloelipsy][1]+posunx[cisloelipsy])<GrMaxX())
/1 ((pozicey[cisloelipsy][1]+posuny[cisloelipsy])>0)&&((pozicey[cisloelipsy][1]+posuny[cisloelipsy])<GrMaxY())
/2 Náhodné¼íslo(200)==6
/n Neplatí Pràchodn∞P²edm╪t()
/p Pràchodn∞P²edm╪t()
/B Barva¼tverceP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
/P P²edm╪tP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
/S Sm╪rBaltazara() /* Je, Není, <, >, <= ,>= */
*0 (uhel<3000)&&(Klávesa==0)
*1 cisloelipsy<=pocetelips
*2 (x>0)&&(Klávesa==0)
*3 (i<5000)&&(Klávesa==0)
*4 (i<500)&&(Klávesa==0)
*5 (i<340)&&(Klávesa==0)
*6 vystup>=0
*7 (i<=GrMaxX())&&(Klávesa==0)
*8 (i<=GrMaxX()+420)&&(Klávesa==0)
*9 (i<100)&&(Klávesa==0)
*n /* delej kdyz Je */ Neplatí Pràchodn∞P²edm╪t()
*p /* delej kdyz Je */ Pràchodn∞P²edm╪t()
*B /* delej kdyz */ Barva¼tverceP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
*P /* delej kdyz */ P²edm╪tP²edBaltazarem() /* Je, Není, <, >, <= ,>= */
*S /* delej kdyz */ Sm╪rBaltazara() /* Je, Není, <, >, <= ,>= */
#A /* delej od m do n s krokem k pro promennou var - zapis #A:(var,m,n,k) */
OdDoKrok
#D /* delej od m dolu do n s krokem k pro prom. var - zapis #D:(var,m,n,k) */
OdDolàDoKrok
#N /* delej n-krat vzestupne pro promennou var - zapis #N:(var,n) */
Od0
#M /* delej n-krat sestupne pro promennou var - zapis #M:(var,n) */
DolàDo0
=SP---------------------------------------------------------------------------
/***** konec programu *****/