' 3D gravitation model ' made by Svjatoslav Agejenko ' in 2003.12 ' H-Page: svjatoslav.eu ' E-Mail: svjatoslav@svjatoslav.eu DECLARE SUB gravi () DECLARE SUB adda (x!, y!, z!, s!) DECLARE SUB display () DIM SHARED atx(1 TO 100) DIM SHARED aty(1 TO 100) DIM SHARED atz(1 TO 100) DIM SHARED atxs(1 TO 100) DIM SHARED atys(1 TO 100) DIM SHARED atzs(1 TO 100) DIM SHARED ats(1 TO 100) DIM SHARED mitu DIM SHARED myx, myy, myz DIM SHARED oax(1 TO 100) DIM SHARED oay(1 TO 100) DIM SHARED oas(1 TO 100) myx = 0 myy = 0 myz = -5 mitu = 0 SCREEN 13 FOR a = 1 TO 30 adda RND * 6 - 3, RND * 6 - 3, RND * 4, 50 NEXT a 1 display gravi IF INKEY$ <> "" THEN SYSTEM GOTO 1 SUB adda (x, y, z, s) mitu = mitu + 1 atx(mitu) = x aty(mitu) = y atz(mitu) = z ats(mitu) = s atxs(mitu) = 0 atys(mitu) = 0 atzs(mitu) = 0 END SUB SUB display FOR a = 1 TO mitu x = atx(a) - myx y = aty(a) - myy z = atz(a) - myz x1 = x / z * 100 + 160 y1 = y / z * 100 + 100 CIRCLE (oax(a), oay(a)), oas(a), 0 CIRCLE (x1, y1), ats(a) / z, 15 oax(a) = x1 oay(a) = y1 oas(a) = ats(a) / z NEXT a END SUB SUB gravi FOR a = 1 TO mitu x = atx(a) y = aty(a) z = atz(a) pxs = 0 pys = 0 pzs = 0 FOR b = 1 TO mitu IF b = a THEN GOTO 2 v = SQR((atx(b) - x) ^ 2 + (aty(b) - y) ^ 2 + (atz(b) - z) ^ 2) v2 = 1 / (v - 1) pxs = pxs + (atx(b) - x) / v2 / 10000 pys = pys + (aty(b) - y) / v2 / 10000 pzs = pzs + (atz(b) - z) / v2 / 10000 2 NEXT b atxs(a) = atxs(a) / 1.01 + pxs atys(a) = atys(a) / 1.01 + pys atzs(a) = atzs(a) / 1.01 + pzs NEXT a FOR a = 1 TO mitu atx(a) = atx(a) + atxs(a) aty(a) = aty(a) + atys(a) atz(a) = atz(a) + atzs(a) NEXT a END SUB