【问题标题】:Matlab - make one point move towards anotherMatlab - 使一个点移向另一个
【发布时间】:2016-05-05 13:53:26
【问题描述】:

我需要编程一个点向另一个点移动。我有该点的初始坐标,但是它必须移动到的点是随机选择的。例如,点的初始可能是我 [0 0],它必须移动到 [100,325] 或 [198, -243]。可以在其中生成点的网格的边界为 500 和 -500(正方形)。

当前使用生成点,

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

并给它们 XY 坐标(最初在一个小的起始区域内随机)。在这种情况下 numberDots 是 = 1 (必须稍后添加更多)。基半径 = 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

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

【问题讨论】:

    标签: matlab plot graph model simulation


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 2017-11-25
      • 2016-12-14
      相关资源
      最近更新 更多