2D Animated Orientation Vector of Satellite in Orbit

8 ビュー (過去 30 日間)
Devin Dalton
Devin Dalton 2021 年 2 月 25 日
コメント済み: darova 2021 年 8 月 5 日
Hello,
I have written a code that calculates the 2-dimensional (x,y) position of a satellite in orbit as well as the angle theta that gives the 2D orientation of that satellite with respect to my x-y axis. I am using the comet function to animate the position of my satellite over time and I want to add it's orientation to the animation. Basically right now I have a point that moves in a circle with time in the animation and I would instead like a vector who's origin moves in a circle but who's direction varries with my angle theta.
Any thoughts on how I can create this animation?

回答 (1 件)

darova
darova 2021 年 2 月 26 日
Here is an example
clc,clear
t = linspace(0,2*pi,30);
[x,y] = pol2cart(t,2);
dx = diff(x);
dy = diff(y);
plot(x,y)
hold on
h1 = quiver(0,0,x(1),y(1));
h2 = quiver(x(1),y(1),dx(1),dy(1));
hold off
for i = 2:length(dx)
set(h1,'udata',x(i),'vdata',y(i))
set(h2,'xdata',x(i),'ydata',y(i),...
'udata',dx(i),'vdata',dy(i))
pause(0.1)
end
  4 件のコメント
Austin Sharpe
Austin Sharpe 2021 年 8 月 4 日
編集済み: Austin Sharpe 2021 年 8 月 4 日
@Devin Dalton xdata and ydata updates the x and y position of the vector defined in the quiver plot. udata and vdata updates the u-component and v-components of the vector, corresponding to the x and y directions, respectively. A cleaner way to do the same thing would be:
for i = 2:length(dx)
h1.UData = dx(i);
h1.VData = dy(i);
h2.XData = x(i);
h2.YData = y(i);
pause(0.1)
end
darova
darova 2021 年 8 月 5 日

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

カテゴリ

Help Center および File ExchangeAnimation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by