если есть мат.форма "пятна" то отталкивать точки от рёбер можно проецируя каждую точку на каждое ребро ( DOT ), и уже от ближайшей точки на ребре до нашей точки отталкивать обратнО пропорционально расстоянию. если нет границ пятна, то можно попытаться поиграться с притяжением точек в центр в зависимости от угла( относительно центра), например -

Код AS3:
angle = Math.atan2 (point.y, point.x)
point.x -= Math.cos (angle) * point.length / state_x;
point.y -= Math.sin (angle) * point.length / state_y;
меняя state_x и state_y получил вот такую хрень: