2点間を移動する物体​の一秒毎の位置の履歴​を作成したい.

1 回表示 (過去 30 日間)
hironori aoki
hironori aoki 2020 年 6 月 26 日
コメント済み: hironori aoki 2020 年 6 月 29 日
無作為に二次元の出発点と到着点を設定し、その間を例えば毎秒20mで移動する物体を考え、その物体の一秒毎の二次元位置の履歴を作成したいです。
例えば出発点(x,y)=(2445,5679) , 到着点(x,y)=(4512,7738)と設定された時
秒数 X座標 Y座標
0 2445 5679
1  2455   5688
2 2465 5697
・   ・   ・
・   ・   ・
・   ・   ・
と返されるようなコードを作成したいです。

採用された回答

Kenta
Kenta 2020 年 6 月 27 日
clear;clc;close all
% create points
p1=randi(1000,[1 2]);
p2=randi(1000,[1 2]);
v=20;%velocity
% the distance between p1 and p2
distance=pdist([p1;p2]);
figure;plot([p1(1);p2(1)],[p1(2);p2(2)]);hold on
for i=1:floor(distance/v)+1
x(i)=(p2(1)-p1(1))*(v*(i-1))/distance+p1(1);
y(i)=(p2(2)-p1(2))*(v*(i-1))/distance+p1(2);
scatter(x(i),y(i),20,'r');pause(.2)
end
こんにちは、繰り返しプロットしていくためにforを、整数の乱数発生のために、randiを使えば上のようにできます。
ここでいう、「履歴」はx, yにそれぞれ格納されています。
  1 件のコメント
hironori aoki
hironori aoki 2020 年 6 月 29 日
わかりやすい説明ありがとうございます。
参考にさせていただきます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGrid Lines, Tick Values, and Labels についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!