How to fill wing movement in 3d?

2 ビュー (過去 30 日間)
Ziv Kassner
Ziv Kassner 2019 年 6 月 16 日
コメント済み: Ziv Kassner 2019 年 6 月 17 日
Hi,
I have a n-by-3 matrix of flapping wing tip path and a stationary base point (zeros(3,n)) - attached as 'wingtip.m'.
I want to use the 'fill3' function but I don't really understand how to use it in here.
I wish to fill the path in which the wing passes threw time.
The BAD way I did it so far is:
figure; hold on;
for i = 1:length(AA) % This is how the matrix in 'wingtip.m' is called
wing(1,1:3) = AA(i,1:3);
wing(2,1:3) = [0 0 0];
plot3(wing(:,1),wing(:,2),wing(:,3),'b','linewidth',10);
end
  6 件のコメント
KSSV
KSSV 2019 年 6 月 17 日
What coodinates correspond to wing?
Ziv Kassner
Ziv Kassner 2019 年 6 月 17 日
AA(:,1:3) are wing tip trajectory, AA(:,4:6) is wing base that is stationary.

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

採用された回答

Ziv Kassner
Ziv Kassner 2019 年 6 月 17 日
Just made it happen:
for i = 1:length(AA)-1
fill3([AA(i,1);AA(i,4);AA(i+1,1)],...
[AA(i,2);AA(i,5);AA(i+1,2)],...
[AA(i,3);AA(i,6);AA(i+1,3)],'r','edgecolor','none')
hold on;
end
axis equal; grid on;
Thank you
  2 件のコメント
darova
darova 2019 年 6 月 17 日
編集済み: darova 2019 年 6 月 17 日
no need for loop
x = AA(:,1);
y = AA(:,2);
z = AA(:,3);
h = surf([x x*0]', [y y*0]', [z z*0]');
alpha(h,0.5)
set(h,'EdgeColor','none')
set(h,'FaceLighting','phong',...
'AmbientStrength',0.5)
light('Position',[1 0 0],'Style','infinite');
#EDITED
Ziv Kassner
Ziv Kassner 2019 年 6 月 17 日
Even better,
Thanks,
Ziv

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

その他の回答 (1 件)

KSSV
KSSV 2019 年 6 月 17 日
This is what you are looking for?
load 'wingtip.mat'
t = AA(:,1:3) ;
wing = AA(:,4:6) ;
patch(t(:,1),t(:,2),t(:,3))

カテゴリ

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

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by