Может кто-нибудь сказать мне, что я делаю неправильно с функцией построения колчана, когда я действительно не получаю стрелки, она просто заполняет пустое пространство большим количеством синего цвета. Посмотрите на изображение ниже, а затем посмотрите на мой код.
Это только часть моего контура, так как он поглощает вычислительную мощность, если я пытаюсь увеличить его.Но моя функция, контуры и все остальное работает, у меня проблемы только с колчаном.
![Matlab plot](https://i.stack.imgur.com/TS1xB.png)
interval = -100:100;
[X Y] = meshgrid(interval, interval);
h = figure;
contour(X, Y, Z);
hold on;
[FX,FY] = gradient(-Z);
quiver(X, Y, FX, FY);
hold off;
Если я сделаю свою матрицу более разреженной, например, с помощью«Интервал = пробел (-800, 1600, 1200);»результат будет выглядеть следующим образом: ![enter image description here](https://i.stack.imgur.com/vWQDw.jpg)
РЕДАКТИРОВАТЬ: Мне нужны такие контурные линии, но стрелки должны течь вместе с ними.Прямо сейчас они выглядят как точки, даже если я увеличу масштаб.Если я уменьшу масштаб, все окно будет синим.
Вот сценарий целиком, если кто-то захочет поиграть с ним, чтобы выяснить это.
m1 = 1;
m2 = 0.4;
r1 = [1167 0 0];
r2 = [-467 0 0];
G = 9.82;
w = sqrt( G*(m1+m2) / norm(r1-r2)^3 );
interval = linspace(-800, 1600, 1200);
% Element-wise 2-norm
ewnorm = @(x,y) ( x.^2 + y.^2 ).^(1/2);
% Element-wise cross squared
ewcross2 = @(w,x,y) w^2.*( x.*x + y.*y );
[X Y] = meshgrid(interval, interval);
Z = - G*m1 ./ ewnorm( X-r1(1), Y-r1(2) ) - G*m2 ./ ewnorm( X-r2(1), Y-r2(2) ) - 1/2*ewcross2(w,X,Y);
h = figure;
contour(Z);
daspect([1 1 1]);
saveas(h, 'star1', 'eps');
hold on;
[FX,FY] = gradient(-Z);
quiver(X, Y, FX,FY);
hold off;