'MULTY GRAVITY SCREEN 12:CLS PI=4*ATN(1) G=1 DT=.01 'INPUT"PARTICLES NUMBER=";N N=23 CLS ?"22-частицы" ?" - выход" DIM M(N),X(N),Y(N),R(N),VX(N),VY(N),AX(N),AY(N),FX(N),FY(N),CV(N),OX(N),OY(N) RM=200 WINDOW(-RM*32/24,-RM)-(RM*32/24,RM) GOSUB INDIS 'GOSUB INVEL GOSUB INMAS MOVE: FOR I=1 TO N FX(I)=0:FY(I)=0 FOR J=1 TO N IF INKEY$=CHR$(27) THEN STOP IF J=I THEN GOTO FORCE RR=((X(I)-X(J))^2)+((Y(I)-Y(J))^2) R=SQR(RR) RX=X(J)-X(I):RY=Y(J)-Y(I) F=G*M(I)*M(J)/(RR) FX=RX*F/R:FY=RY*F/R FX(I)=FX(I)+FX FY(I)=FY(I)+FY FORCE: NEXT J AX(I)=FX(I)/M(I):AY(I)=FY(I)/M(I) VX(I)=VX(I)+AX(I)*DT VY(I)=VY(I)+AY(I)*DT X(I)=X(I)+VX(I)*DT Y(I)=Y(I)+VY(I)*DT PRESET(OX(I),OY(I)) PSET(X(I),Y(I)) OX(I)=X(I):OY(I)=Y(I) NEXT I GOTO MOVE STOP INDIS: X(1)=0:Y(1)=0 VX(1)=0:VY(1)=0 CIRCLE(X(1),Y(1)),10 PAINT(X(1),Y(1)),12 CIRCLE(X(1),Y(1)),10,12 CV(1)=15 'V=90:'circle velosity V=90 FOR I=2 TO N R(I)=.6*RM-.4*RM*RND FI=2*PI*RND VM=V*SQR(.6*RM/R(I)) CV(I)=CV(I-1)+1 X(I)=R(I)*COS(FI) Y(I)=R(I)*SIN(FI) VX(I)=VM*SIN(FI) VY(I)=-VM*COS(FI) 'PSET(X(I),Y(I)),CV(I) NEXT I FOR I=1 TO N OX(I)=X(I):OY(I)=Y(I):NEXT I RETURN INVEL: RETURN INMAS: M(1)=1000000 FOR I=2 TO N M(I)=1 NEXT I:RETURN