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("equal")

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

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-")