вот я сейчас этим и занимаюсь

пытаюсь сделать симулятор позитивных и негативных частиц
вроде пока получается, вот мой прогресс на сегодняшний день:

Код:
function G(me,obj1,obj2) {
me.onEnterFrame=function(){
for(i=0;i<obj1.length;i++){
var dx = this._x - obj1[i]._x
var dy = this._y - obj1[i]._y
var D=Math.sqrt(dx*dx+dy*dy)
var F=-100/D
if(Math.abs(F)<0.1|D<20){
F=0
}
if(D<5){
me._x=+10
}
angle = Math.atan2 (dy, dx);
me._x -= Math.cos (angle) * F
me._y -= Math.sin (angle) * F
}
for(l=0;l<obj2.length;l++){
var dx2 = this._x - obj2[l]._x
var dy2 = this._y - obj2[l]._y
var D2=Math.sqrt(dx2*dx2+dy2*dy2)
var F2=100/D
if(Math.abs(F2)<0.1|D2<20){
F2=0
}
angle2 = Math.atan2 (dy2, dx2);
me._x -= Math.cos (angle2) * F2
me._y -= Math.sin (angle2) * F2
}
где "me" это имя самого обьекта к которому относится функция G
"obj1"-это массив всех объектов от которых он отталкивается
"obj2"-массив объектов к которым он претягивается
тоесть если у нас есть негативные частички A1 и A2, и две позетивные частички B и B1, то функцию используем следуюшм образом:

Код:
G(A1,[A2],[B,B1])
G(A2,[A1],[B,B1])
G(B,[B1],[A1,A2])
G(B1,[ B],[A2,A1])
когда много частичек, то немного глючит, зато они строят интересные структуры в которых все силы сбалансированны.Код ещё нужно модернезировать, если кто захочет может помочь
