Matlab - 让一点朝着另一个方向发展

时间:2016-05-05 13:53:27

标签: matlab plot graph model simulation

我需要编写一个朝着另一个点移动的点。我有点的初始坐标,但它必须移动到的点是随机选择的。点的初始点可能是[0 0],它必须前往[100,325]或[198, -243。点可以产生的网格具有500和-500(正方形)的界限。

目前使用

生成积分
dots = plot(XY(:,1), XY(:,2), ...
        'Marker', '.', ...
        'Color', 'b', ...
        'LineStyle', 'none', ...
        'MarkerSize', 6);

并给它们XY坐标(最初在一个小的起始区域内随机)。在这种情况下,numberDots = 1(以后必须添加更多)。 baseRadius = 50

angle = rand(numberUAVs, 1) * 2*pi;
r = baseRadius * sqrt(rand(numberDots, 1));
XY = [r .* cos(angle(:)) + 0, ...
      r .* sin(angle(:)) + 0]

这就是我目前正试图通过简单地将1添加到坐标和绘图来让它们移动。

for i = 1:1000000
    XY = XY + 1;
    pause(0.1)
    set(dots, 'XData', XY(:,1), 'YData', XY(:,2));
end

如何使点移动到随机定义的点。感谢

1 个答案:

答案 0 :(得分:0)

每次通过循环向{/ 1}}添加1只有当你的新点始终总是到当前点的右上角时才会有相同的x和y距离起点的距离。

相反,您只需使用linspace在开始和结束之间获得线性间隔的x值,对y值也是如此。

%// Number of "steps" you want to take to get from the start point to the end point
nSteps = 100;

%// Figure out all intermediate x/y values between the two
xx = linspace(x_start, x_end, nSteps);
yy = linspace(y_start, y_end, nSteps);

%// Create the initial plot
plt = plot(NaN, NaN, 'bo');

%// Then plot the point's path
for k = 1:nSteps
    set(plt, 'XData', xx(k), 'YData', yy(k))
    drawnow;
end