我需要编写一个朝着另一个点移动的点。我有点的初始坐标,但它必须移动到的点是随机选择的。点的初始点可能是[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
如何使点移动到随机定义的点。感谢
答案 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