Как остановить масштаб Matlab plot3 - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу построить маятник (который меняет положение), используя функцию plot3.К сожалению, когда моя точка меняет положение в цикле и строится снова, масштаб 3d-графика также меняется, поэтому ось x в зависимости от положения изменяется (в зависимости от положения точки она может быть от -1 до -1,5 или от-1 до -3) и у тоже меняется.Только z заявляет то же самое.В результате точка прыгает на графике и не создает впечатление маятника.Вот как я строю:

plot3(0,0,0);
daspect([1,1,1]);
axis([-10, 10, -10, 10]);
scatter3(x(i)-rs, y(i)-rs, 0);

Я пытался решить проблему, используя:

gca

или

set(fig, 'PaperPositionMode', 'auto');

, но оба не помогают.Я также не могу повернуть график, потому что он строится и возвращается на предыдущую позицию.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Вот краткий пример в 2D, вы можете легко применить это также к 3D:

N = 50;
x = [1:N;N:-1:1];
x = repmat(x,2,1).';
p = plot(x(1),1,'ob','MarkerFaceColor','b');
xlim([0 51])
for k = 2:numel(x)
    p.XData = x(k);
    drawnow
end

Ключ здесь должен установить xlim перед циклом, а затем обновлять только соответствующие данные всюжет (используя XData в данном случае).

0 голосов
/ 24 ноября 2018

Попробуйте установить свойства XLim, YLim и ZLim перед построением графика.Например,

xlim=[-1 1];

или

haxe = gca;
haxe.XLim = [-1 1];

Кроме того, вы можете установить свойства XLimMode, YLimMode и ZLimMode на manual.Например,

haxe.XLimMode = 'manual'

Для получения дополнительной информации о свойствах оси см. Документацию MATLAB для свойств оси .

...