plotTruss1.m

function plotTruss1(x0, A, N)
% zeichnet ein Fachwerk
% Parameter:
%    x0        Gleichgewichtskoordinaten aller Punkte
%    A         Verbindungsmatrix (symmetrisch, auf der Diagonalen 0)
%    N         Zahl der beweglichen Massen
 
xp = x0(1,:);
yp = x0(2,:);
M = length(xp);

% zeichne Knoten
plot(xp, yp, 'ko')
axis([-0.5 3.5 -1.5 2.5])
set(gca, 'XTick', [], 'YTick', [])

% zeichne Verbindungen
hold('on')
for I=1:M
  for J = 1:(I-1)
    if A(I,J) ~= 0
       plot([xp(I) xp(J)], [yp(I) yp(J)], 'k-')
    end
  end
end
   
% markiere fixierte Knoten
for I=N+1:M
  plotSquare(xp(I), yp(I)) 
end
hold('off')

% mache Achsensystem quadratisch
axis('square')

%--------------------------------------------------------------------

function plotSquare(x, y)
% zeichnet ein kleines rotes Rechteck um (x,y)

d = 0.2;
xi = [x-d, x+d, x+d, x-d, x-d];
yi = [y+d, y+d, y-d, y-d, y+d];

plot(xi, yi, 'r-')