PROGRAMSKA KODA
PROGRAMA POEVNI MET
Siinbu
XShell TestCase2 :
width 1058,
height 515,
title "Bouncing Ball",
x 10,
y 20,
background "#71C69E79FFFF";
XWidget XmBulletinBoard TestCase2.form :
background "Black",
marginWidth 0,
marginHeight 0,
x 0,
y 0,
width 1020,
height 507;
XWidget XmPushButton form.start :
labelString "START",
x 12,
y 106,
width 47,
height 25;
XWidget XmPushButton form.reset :
labelString "RESET",
x 73,
y 107,
width 48,
height 26;
XWidget XmPushButton form.stop :
labelString "STOP",
x 11,
y 136,
width 49,
height 25;
XWidget XmLabel form.ball :
x 199,
y 500,
labelType "PIXMAP",
labelPixmap "/usr/local/colos/EXAMPLES/XDEV/DATA/bigGreenBall.xpm.Z",
marginWidth 0,
marginHeight 0,
background "Green";
XWidget XmPushButton form.quit :
x 75,
y 136,
width 46,
height 25,
labelString "QUIT";
XWidget XmSeparator form.Separator_1 :
orientation "VERTICAL",
height 513,
width 5,
x 196,
y 1;
XWidget XmSeparator form.Separator_2 :
orientation "HORIZONTAL",
width 195,
height 5,
x 1,
y 291,
background "Red";
XWidget XmSeparator form.Separator_3 :
orientation "HORIZONTAL",
width 197,
height 5,
x 0,
y 163,
background "Red",
foreground "Green";
XWidget XmSeparator form.Separator_4 :
orientation "VERTICAL",
height 81,
width 4,
x 95,
y 380,
background "Green";
XWidget XmPushButton form.naslov_1 :
x 7,
y 5,
width 185,
height 26,
labelString "PEF MARIBOR-oddelek za fiziko",
background "Green";
XWidget XmPushButton form.button_6 :
x 9,
y 28,
width 182,
height 24,
background "Green",
labelString "avtorja: Andrej FLOGIE";
XWidget XmPushButton form.button_7 :
x 9,
y 51,
width 180,
height 22,
background "Green",
labelString " Dusan KLEMENCIC";
XWidget XmPushButton form.button_9 :
x 8,
y 73,
width 183,
height 23,
background "Green",
labelString "mentor: mag. Marko MARHL";
XWidget XmSeparator form.Separator_10 :
orientation "HORIZONTAL",
width 196,
height 5,
x 1,
y 96,
background "Red",
foreground "Red";
XWidget XmPushButton form.POSPESI :
x 133,
y 108,
width 60,
height 25,
background "Gray100",
labelString "POSPESI";
XWidget XmPushButton form.UPOCASNI :
x 133,
y 136,
width 60,
height 24,
background "Gray100",
labelString "UPOCASNI";
Variables
int Width, Height;
float v0 = 72.0;
double kot = 3.141593/4;
float g = 9.81;
char text255];
float t=0.0;
float d,h;
float t1, t2;
int ch = 0;
float v = 0.0;
float vx = 0.0;
float vy = 0.0;
float v0x = 0.0;
float v0y = 0.0;
float x = 0.0;
float y = 0.0;
int x1 = 0;
int y1 = 0;
int ch1=1;
int n = 10;
int ch2 = 0;
int ch3 = 0;
int vy1;
int vx1;
Program
XGetVal TestCase2 : width Width;
XGetVal TestCase2 : height Height;
#vpis zacetnih vrednosti v okna;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
t2=2*v0*sin(kot)/g;
t1=t2/2;
#hitrost
XWidget XmArrowButton TestCase2.povH :
x 15, y 180, width 20 , height 20;
XWidget XmArrowButton TestCase2.zmaH :
x 170, y 180, width 20, height 20,
arrowDirection "ARROW_DOWN";
sprintf(text,"v0=%.1f m/s",v0);
XWidget XmLabel TestCase2.oknoH :
x 40, y 180, width 120, height 20,
labelString text;
#kot
kot=kot*180/3.141593;
XWidget XmArrowButton TestCase2.povK :
x 15, y 220, width 20, height 20;
XWidget XmArrowButton TestCase2.zmaK :
x 170, y 220, width 20, height 20,
arrowDirection "ARROW_DOWN";
sprintf(text,"kot=%.1lf stopinj",kot);
XWidget XmLabel TestCase2.oknoK :
x 40, y 220, width 120, height 20,
labelString text;
printf(text,"kot=%.1lf stopinj",kot);
kot=kot*3.141593/180;
#pospesek
XWidget XmArrowButton TestCase2.povG:
x 15, y 260, width 20, height 20;
XWidget XmArrowButton TestCase2.zmaG:
x 170, y 260, width 20, height 20,
arrowDirection "ARROW_DOWN";
sprintf(text,"g=%.2f m/s2",g);
XWidget XmLabel TestCase2.oknoG :
x 40, y 260, width 120, height 20,
labelString text;
printf(text,"g=%.2f m/s2",g);
#horizontalna komponenta hitrosti na zacetku
sprintf(text,"vx(0)=%.1f m/s",v0x);
XWidget XmLabel TestCase2.oknoHX0 :
x 40, y 310, width 120, height 20,
labelString text;
printf(text,"vx(0)=%.1f m/s",v0x);
#veritkalna komponenta hitrosti na zacetku
sprintf(text,"vy(0)=%.1f m/s",v0y);
XWidget XmLabel TestCase2.oknoHY0 :
x 40, y 340, width 120, height 20,
labelString text;
printf(text,"vy(0)=%.1f m/s",v0y);
#ternutna hitrost
sprintf(text,"v=%.1f m/s",v);
XWidget XmLabel TestCase2.oknoHT :
x 5, y 380, width 90, height 20,
labelString text;
printf(text,"v=%.1f m/s",v);
#trenutna horiznotalna hitrost
sprintf(text,"vx=%.1f m/s",vx);
XWidget XmLabel TestCase2.oknoHXT:
x 5, y 410, width 90, height 20,
labelString text;
printf(text,"vx=%.1f m/s",vx);
#trenutna vertikalna hitrost
sprintf(text,"vy=%.1f m/s",vy);
XWidget XmLabel TestCase2.oknoHYT:
x 5, y 440, width 90, height 20,
labelString text;
printf(text,"vy=%.1f m/s",vy);
#trenutni cas
sprintf(text,"t=%.1f s",t);
XWidget XmLabel TestCase2.oknoT:
x 100, y 380, width 90, height 20,
labelString text;
printf(text,"t=%.1f s",t);
#trenutna vrednost x komponente
sprintf(text,"x=%.1f m",x);
XWidget XmLabel TestCase2.oknoX:
x 100, y 410, width 90, height 20,
labelString text;
printf(text,"x=%.1f m",x);
#trenutna vrednost y komponente
sprintf(text,"y=%.1f m",y);
XWidget XmLabel TestCase2.oknoY:
x 100, y 440, width 90, height 20,
labelString text;
printf(text,"y=%.1f m",y);
#opozorilo-negativne vrednosti
sprintf(text,"Ne mores vec nizati");
XWidget XmLabel TestCase2.oknoOS:
x 25, y 480, width 150, height 20,
labelString text;
XUnmanage oknoOS;
sprintf(text,"Ne mores vec visati");
XWidget XmLabel TestCase2.oknoOZ:
x 25, y 480, width 150, height 20,
labelString text;
XUnmanage oknoOZ;
#najvisja tocka-hitrost
sprintf(text,"v=%.1f m/s",v);
XWidget XmLabel TestCase2.oknoHH:
x 600, y 5, width 90, height 20,
labelString text;
XUnmanage oknoHH;
#najvisja tocka - horizontalna hitrost
sprintf(text,"vx=%.1f m/s",vx);
XWidget XmLabel TestCase2.oknoHXH:
x 600, y 35, width 90, height 20,
labelString text;
XUnmanage oknoHXH;
#najvisja tocka - vertikalna hitrost
sprintf(text,"vy=%.1f m/s", vy);
XWidget XmLabel TestCase2.oknoHYH:
x 600, y 65, width 90, height 20,
labelString text;
XUnmanage oknoHYH;
#najvisja tocka - cas
sprintf(text,"t=%.1f s",t);
XWidget XmLabel TestCase2.oknoTH:
x 700, y 5, width 90, height 20,
labelString text;
XUnmanage oknoTH;
#najvisja tocka - dolzina
sprintf(text,"x=%.1f m",x);
XWidget XmLabel TestCase2.oknoXH:
x 700, y 35, width 90, height 20,
labelString text;
XUnmanage oknoXH;
#najvisja tocka - visina
sprintf(text,"y=%.1f m",y);
XWidget XmLabel TestCase2.oknoYH:
x 700, y 65, width 90, height 20,
labelString text;
XUnmanage oknoYH;
#najnizja tocka - hitrost
sprintf(text,"v=%.1f m/s",v);
XWidget XmLabel TestCase2.oknoHD:
x 900, y 320, width 90, height 20,
labelString text;
XUnmanage oknoHD;
#najnizja tocka - horizontalna hitrost
sprintf(text,"vx=%.1f",vx);
XWidget XmLabel TestCase2.oknoHXD:
x 900, y 350, width 90, height 20,
labelString text;
XUnmanage oknoHXD;
#najnizja tocka - vertikalna hitrost
sprintf(text,"vy=%.1f",vy);
XWidget XmLabel TestCase2.oknoHYD:
x 900, y 380, width 90, height 20,
labelString text;
XUnmanage oknoHYD;
#najnizja tocka - cas
sprintf(text,"t=%.1f s",t);
XWidget XmLabel TestCase2.oknoTD:
x 900, y 410, width 90, height 20,
labelString text;
XUnmanage oknoTD;
#najnizja tocka - dolzina
sprintf(text,"x=%.1f m",x);
XWidget XmLabel TestCase2.oknoXD:
x 900, y 440, width 90, height 20,
labelString text;
XUnmanage oknoXD;
#najnizja tocka - visina
sprintf(text,"y=%.1f m",y);
XWidget XmLabel TestCase2.oknoYD:
x 900, y 470, width 90, height 20,
labelString text;
XUnmanage oknoYD;
#vektor hitrosti - smer y
vy1=(int) vy;
XWidget XmSeparator form.smery:
orientation "VERTICAL",
width 1,
height vy1,
x 205,
y 507-vy1,
background "Red";
#vektor hitrosti - smer x
vx1=(int) vx;
XWidget XmSeparator form.smerx:
orientation "HORIZONTAL",
width vx1,
height 2,
x 205,
y 507,
background "Red";
Loop
x = x+1;
vx = v0*cos(kot);
t = x/vx;
y = v0*sin(kot)*t-g*t*t/2;
v = sqrt(v0*v0-2*g*(v0*sin(kot)*t-g*t*t/2));
vy = v0*sin(kot)-g*t;
t2 = 2*v0*sin(kot)/g;
t1 = t2/2;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
sprintf(text,"t=%.1f s",t);
XSetVal oknoT : labelString text;
printf(text,"t=%.1f s",t);
sprintf(text,"x=%.1f m",x);
XSetVal oknoX : labelString text;
sprintf(text,"y=%.1f m",y);
XSetVal oknoY : labelString text;
x1 = (int) x;
y1 = (int) y;
if (x1>=Width-210)
ch1=0;
XUnmanage ball;
}
if (ch1=1)
XSetVal ball: x x1+199,y Height-y1-15;
}
vy1=(int) vy;
vx1=(int) vx;
if (vy1>=0)
XSetVal smery : x x1+205, y Height-y1-7-vy1, height vy1;
}
else
vy1=-vy1;
if (y1+7>=vy1)
XSetVal smery : x x1+205, y Height-y1-7, height vy1;
}
else
vy1=y1+5;
XSetVal smery : x x1+205, y Height-y1-7, height vy1;
}
}
if (x1+205+vx1<=Width)
XSetVal smerx : x x1+205, y Height-y1-7, width vx1;
}
else
if (x1+215<=Width)
vx1=Width-x1-205;
XSetVal smerx : x x1+205, y Height-y1-7, width vx1;
}
else
XUnmanage smerx;
XUnmanage smery;
vx1=-1;
}
}
XDelay n;
if (ch==0)
if (t>=t1)
XBell(100);
XManage oknoHH;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHH:labelString text;
XManage oknoHXH;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXH: labelString text;
XManage oknoHYH;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYH: labelString text;
XManage oknoTH;
sprintf(text,"t=%.1f s",t);
XSetVal oknoTH: labelString text;
XManage oknoXH;
sprintf(text,"x=%.1f m",x);
XSetVal oknoXH: labelString text;
XManage oknoYH;
sprintf(text,"y=%.1f m",y);
XSetVal oknoYH: labelString text;
ch=1;
}
}
if (t>=t2)
XManage oknoHD;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHD:labelString text;
XManage oknoHXD;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXD: labelString text;
XManage oknoHYD;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYD: labelString text;
XManage oknoTD;
sprintf(text,"t=%.1f s",t);
XSetVal oknoTD: labelString text;
XManage oknoXD;
sprintf(text,"x=%.1f m",x);
XSetVal oknoXD: labelString text;
XManage oknoYD;
sprintf(text,"y=%.1f m",y);
XSetVal oknoYD: labelString text;
x = 0.0;
y = 0.0;
t = 0.0;
v = v0;
vx = v0*cos(kot);
vy = v0*sin(kot);
ch=0;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT: labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT: labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT: labelString text;
sprintf(text,"t=%.1f s",t);
XSetVal oknoT: labelString text;
sprintf(text,"x=%.1f m",x);
XSetVal oknoX: labelString text;
sprintf(text,"y=%.1f m",y);
XSetVal oknoY: labelString text;
XBell(100);
XLoop 0;
}
Callback
POSPESI
activateCallback
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
if (n>=10)
n=n-9;
}
if (n>=1)
n=n-1;
}
else
ch3=1;
XUnmanage oknoOS;
}
Callback
UPOCASNI
activateCallback
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
n = n + 10;
Callback
povG
activateCallback
if (g<=20)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
g=g+0.1;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
sprintf(text,"g=%.1f m/s2",g);
XSetVal oknoG : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
}
else
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
XManage oknoOZ;
ch2=1;
}
Callback
povH
activateCallback
if (v0<=99)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
v0=v0+1;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
sprintf(text,"v0=%.1f m/s",v0);
XSetVal oknoH : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
}
else
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
XManage oknoOZ;
ch2=1;
}
Callback
povK
activateCallback
kot=kot*180/3.141593;
if (kot<=88)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
kot=kot+1;
kot=kot*3.141593/180;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
kot=kot*180/3.141593;
sprintf(text,"kot=%.1f stopinj",kot);
XSetVal oknoK : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
}
else
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
XManage oknoOZ;
ch2=1;
}
kot=kot*3.141593/180;
Callback
quit
activateCallback
XQuit 1;
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
Callback
reset
activateCallback
t=0.0;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=0.0;
y=0.0;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
sprintf(text,"t=%.1f s",t);
XSetVal oknoT : labelString text;
sprintf(text,"x=%.1f m",x);
XSetVal oknoX : labelString text;
sprintf(text,"y=%.1f m",y);
XSetVal oknoY : labelString text;
XUnmanage oknoHH;
XUnmanage oknoHXH;
XUnmanage oknoHYH;
XUnmanage oknoTH;
XUnmanage oknoXH;
XUnmanage oknoYH;
XUnmanage oknoHD;
XUnmanage oknoHXD;
XUnmanage oknoHYD;
XUnmanage oknoTD;
XUnmanage oknoXD;
XUnmanage oknoYD;
x1 = 0;
y1 = 0;
XBell(50);
XSetVal ball : x 199, y Height-20;
ch1=0;
if (ch1==0)
ch1=1;
XManage ball;
XSetVal ball: x 199, y Height;
}
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
if (vx1==-1)
XManage smery;
XManage smerx;
}
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
Callback
start
activateCallback
XLoop 1;
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
Callback
stop
activateCallback
XLoop 0;
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
Callback
zmaG
activateCallback
if (g>=1)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
g=g-0.1;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
sprintf(text,"g=%.1f m/s2",g);
XSetVal oknoG : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
}
else
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
XManage oknoOS;
ch3=1;
}
Callback
zmaH
activateCallback
if (v0>=1)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
v0=v0-1;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
sprintf(text,"v0=%.1f m/s",v0);
XSetVal oknoH : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
}
else
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
Xmanage oknoOS;
ch3=1;
}
Callback
zmaK
activateCallback
kot=kot*180/3.141593;
if (kot>=1)
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
if (ch3==1)
ch3=0;
XUnmanage oknoOS;
}
kot=kot-1;
kot=kot*3.141593/180;
v0x=v0*cos(kot);
v0y=v0*sin(kot);
v=v0;
vx=v0*cos(kot);
vy=v0*sin(kot)-g*t;
x=v0*cos(kot)*t;
y=v0*sin(kot)*t-g*t*t/2;
d=v0*v0*sin(2*kot)/g;
h=v0*v0*sin(kot)*sin(kot)/(2*g);
kot=kot*180/3.141593;
sprintf(text,"kot=%.1f stopinj",kot);
XSetVal oknoK : labelString text;
sprintf(text,"vx(0)=%.1f m/s",v0x);
XSetVal oknoHX0 : labelString text;
sprintf(text,"vy(0)=%.1f m/s",v0y);
XSetVal oknoHY0 : labelString text;
sprintf(text,"v=%.1f m/s",v);
XSetVal oknoHT : labelString text;
sprintf(text,"vx=%.1f m/s",vx);
XSetVal oknoHXT : labelString text;
sprintf(text,"vy=%.1f m/s",vy);
XSetVal oknoHYT : labelString text;
vy1=(int) vy;
vx1=(int) vx;
XSetVal smery : x x1+205, y Height-y1-12-vy1, height vy1;
XSetVal smerx : x x1+205, y Height-y1-12, width vx1;
}
else
if (ch2==1)
ch2=0;
XUnmanage oknoOZ;
}
XManage oknoOS;
ch3=1;
}
kot=kot*3.141593/180;