Как построить векторное поле из массива допустим 3 точек? Триллион статей уже прочел, везде примеры, "Для Функции...".
Вот пример задачи,
https://en.wikipedia.org/wiki/Metaballs
Что бы визуализировать, нужно на каждой итерации рассчитать такое уравнение
1=Σ( Ri/sqrt((X-Xi)^2+(y+Y^2) )
Если посмотреть, то по факту в холостую уходит тонна расчетов.
К примеру допустим, мне надо отрисовывать только контур шаров, тогда для 2 шаров радиусом в 10px на поверхности в 100*100 будет 99% расчетов в никуда.
Как можно через теорию поля решить это задачу.
Я пытаюсь как-то так решить.
К примеру, можно складывать пред. результат с производной. Но пока не получается.
f(x+dx)=f(x)+f`(x)*dx*dy
Есть вот Градиенты, Дивергенции. Не все понимаю, как применить к задачи.
Из задачи, круги, будем считать центы гравитации, и они там двигаются, то есть n векторов движений.
Решаю примерно так. ноль инфы
0. Генерю положение центров кругов.
1. Начальная инициализация по уравнению. Построения скалярного поля, цветовой заливки плоскости.
2. Строю матрицу производных. к каждой точке.
3. Перемещаю круги. Field[x,y]=Field[x,y] + calc(x,y);
3.1 типа вычисляю производную(беру из массива), и умножаю на вектор направления(вопрос какой), обновляю массив.
4. Отрисовываю if(Field[x,y]>1) Draw(x,y)
Не могу понять, что означает производная по направлению к вектору, точнее как понимать, что у меня N шаров с N векторами скоростей в точках, а какой вектор будет для случайной точки между ним, за точкой? Если у меня не задано уравнение, как не гуглю, все примеры задач, "У вас есть функция.... " далее, и ежу понятно что.