2016-05-05 8 views
0

別のドットに向かって移動するドットをプログラムする必要があります。私はポイントの初期座標を持っていますが、移動するポイントはランダムに選択されています。ドットの頭文字は私[0 0]かもしれませんし、[100,325]または[198、 -243]。ポイントがスポーンできるグリッドは、500と-500(四角)の境界にあります。Matlab - あるポイントを別のポイントに移動する

現在、

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] 

これは現在、単にCOORDSに1を追加し、プロットすることにより移動するためにそれらを取得しようとしている方法イムです。

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

どのようにランダムに定義されたポイントにドットを移動させることができますか。あなたに1を追加おかげ

答えて

0

のx/yはループを通るたびに、あなたの新しい点は、あなたの開始点から同じ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 
関連する問題