How to fill wing movement in 3d?

1 view (last 30 days)
Ziv Kassner
Ziv Kassner on 16 Jun 2019
Commented: Ziv Kassner on 17 Jun 2019
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 Comments
KSSV
KSSV on 17 Jun 2019
What coodinates correspond to wing?
Ziv Kassner
Ziv Kassner on 17 Jun 2019
AA(:,1:3) are wing tip trajectory, AA(:,4:6) is wing base that is stationary.

Sign in to comment.

Accepted Answer

Ziv Kassner
Ziv Kassner on 17 Jun 2019
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 Comments
darova
darova on 17 Jun 2019
Edited: darova on 17 Jun 2019
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 on 17 Jun 2019
Even better,
Thanks,
Ziv

Sign in to comment.

More Answers (1)

KSSV
KSSV on 17 Jun 2019
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))

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!