% MWE
clc
close all
j=zeros(1000,2);
j(:,1)=linspace(0,pi,1000);
j(:,2)=linspace(0,2*pi,1000);
l=[20 10 15];

% Plot der Halterung und Einstellungen
figure('Name','Roboterkinematik','NumberTitle','off');
plot3([0 0],[0 0],[-10 0],'k','linewidth',5)
hold on, grid on
xlabel('x'), ylabel('y'), zlabel('z')
axis('equal',[-50 50 -50 50 -50 50])

% Ausgangslage des Roboterarms
% 1. Glied
h1=hgtransform;
limb(1) = plot3([0 l(1)],[0 0],[0 0]);
set(limb(1),'Parent',h1)

% 2. Glied
h2=hgtransform;
limb(2) = plot3([l(1) l(1)],[0 l(2)],[0 0]);
set(limb(2),'Parent',h2)

% 3. Glied
h3=hgtransform;
limb(3) = plot3([l(1) l(1)+l(3)],[l(2) l(2)],[0 0]);
set(limb(3),'Parent',h3)

for i=1:n
R1=makehgtform('zrotate',j(i,1));
set(limb(1),'XData',[0 l(1)],'YData',[0 0],'ZData',[0 0])
set(h1,'matrix',R1)

R2=makehgtform('zrotate',j(i,1),'translate',[l(1) 0 0]);
set(limb(2),'XData',[0 0],'YData',[0 l(2)],'ZData',[0 0])
set(h2,'matrix',R2)

R3=makehgtform('zrotate',j(i,1),'translate',[l(1) l(2) 0],'xrotate',-pi/2,'zrotate',-j(i,2));
set(limb(3),'XData',[0 l(3)],'YData',[0 0],'ZData',[0 0])
set(h3,'matrix',R3)

pause(0.01)
end