using System; using Cairo; using Gdk; using Gtk; class Area : DrawingArea { private static int n = 23; // кількість кругів споwчатку public int xmax = 500, // розміри поля по горизонталі ymax = 250; // розміри поля по вертикалі double[] r = new double[n]; // радіуси рухомих кругів double[] x = new double[n]; // поточні абсциси центрів кругів double[] y = new double[n]; // поточні ординати центрів кругів double[] vx = new double[n]; // проєкції швидкостей вісь абсцис double[] vy = new double[n]; // проєкції швидкостей вісь ординат public Area () { Random rand = new Random(); for (int j=0; j xmax) { vx[j] = -vx[j]; x[j]=2*(xmax - r[j]) - x[j];} if (y[j] + r[j] > ymax) { vy[j] = -vy[j]; y[j]=2*(ymax - r[j]) - y[j];} if (x[j] < r[j]) { vx[j] = -vx[j]; x[j] = 2*r[j] - x[j];} if (y[j] < r[j]) { vy[j] = -vy[j]; y[j] = 2*r[j] - y[j];} } double mj, mk, m; // "Злипання" кругів for (int j=0; j1) { mj=r[j]*r[j]; for (int k=j+1; k