'magnet ' 09/08/1993 DIM a(5), xc(5), zc(5), al(5), in(5) DIM i AS INTEGER, nb AS INTEGER, ib AS INTEGER CONST pi = 3.14159265#, deuxpi = 2 * pi CONST degrad = pi / 180! CONST dt = 2 * pi / 15 CLS READ nb FOR i = 1 TO nb READ a(i), zc(i), xc(i), al(i), in(i) al(i) = al(i) * degrad NEXT i SCREEN 2 FOR x = -110 TO 110 STEP 10.1 FOR z = 0 TO 400 STEP 10.1 bx = 0 bz = 0 FOR ib = 1 TO nb GOSUB calculs NEXT ib xp = z + 10 yp = x + 120 b = SQR(bx * bx + bz * bz) IF (b > .1) THEN bx = bx * .1 / b bz = .1 * bz / b END IF IF (b < .03) THEN bx = bx * .3 / b bz = .3 * bz / b END IF x2 = xp + bz * 100 y2 = yp + bx * 100 LINE (xp, yp)-(x2, y2) NEXT z NEXT x a$ = INPUT$(1) CLS SCREEN 0 END calculs: FOR th = 0 TO deuxpi STEP dt lx = -a(ib) * SIN(th) * COS(al(ib)) * dt ly = a(ib) * COS(th) * dt lz = -a(ib) * SIN(th) * SIN(al(ib)) * dt rx = x - (xc(ib) + a(ib) * COS(th) * COS(al(ib))) ry = -a(ib) * SIN(th) rz = z - (zc(ib) + a(ib) * COS(th) * SIN(al(ib))) dx = ly * rz - lz * ry dz = lx * ry - ly * rx r = SQR(rx * rx + ry * ry + rz * rz) r3 = r * r * r bx = bx + in(ib) * dx / r3 bz = bz + in(ib) * dz / r3 NEXT th RETURN DATA 2 DATA 5,100,50,45,0.01 DATA 10,300,-50,45,0.1