function [] = UseCaseBridge(X0,D,C)

    % Es wird ein Fachwerk dynamisch simuliert.
    % Dabei gibt X eine Liste von Punkten an:
    %
    %   size(X0) = [n,2]
    %
    % mit n Knotenpunkten in 2 Dimensionen.
    % D ist eine symmetrische oder oben-rechte Bool-Matrix, die in
    %
    % D(i,j)
    %
    % die Information enthält, ob die Knoten i und j miteinander verbunden
    % sind.
    % Falls 
    %
    % D(i,i) == true
    %
    % , so ist der Knotenpunkt i fest verankert und wird sich nie bewegen.
    %
    % C enthält die Steifigkeiten und hat dieselbe Besetzungsstruktur wie D.

    %% Simulationsparameter
    dt  = 0.001;
    T   = 120;
    c_W = 0.1;
    g   = 0.1;

    fpat = 'Lauf1';
    dm   = 500;
    zoom = 1.2;
    
    
    %% Fensterrahmen bestimmen
    x_min = min(X0(:,1));
    x_max = max(X0(:,1));
    
    y_min = min(X0(:,2));
    y_max = max(X0(:,2));
    
    span_half = 0.5*zoom*max(x_max-x_min, y_max-y_min);
    x_centre = 0.5*(x_min+x_max);
    y_centre = 0.5*(y_min+y_max);
    

    %% Initialisierung
    n = size(X0,1);

    Vx = zeros(n,1);
    Vy = zeros(n,1);
    X = X0;
    % Anfängliche Länge entspricht der Ruhe-Länge
    L0 = zeros(n,n);
    for i=1:n
        for j=1:n
            if(D(i,j))
                L0(i,j) = norm(X0(i,:)-X0(j,:),2);
            end
        end
    end
    
    m = -1;
    for t = 0:dt:T
        m = m+1;
        Ax = -c_W * Vx;
        Ay = -c_W * Vy - g * ones(n,1);
        
        % relative Längenänderungen bestimmen
        for i=1:n
            for j=1:n
                if(D(i,j) && i~=j)
                    dL(i,j) = (norm(X(i,:)-X(j,:),2)-L0(i,j))/L0(i,j);
                end
            end
        end
        
        % Resultierende Beschleunigungen bestimmen
        
        for i=1:n
            if(D(i,i)==false)
                for j=1:n
                    if(D(i,j) && i~=j)
                        Ax(i) = Ax(i) + (X(j,1)-X(i,1))/L0(i,j) * C(i,j) * dL(i,j);
                        Ay(i) = Ay(i) + (X(j,2)-X(i,2))/L0(i,j) * C(i,j) * dL(i,j);
                    end
                end
            else
                Ay(i) = 0;
            end
        end
        
        % Zeitschritt
        Vx      = Vx     + dt * Ax;
        Vy      = Vy     + dt * Ay;
        X(:,1)  = X(:,1) + dt * Vx;
        X(:,2)  = X(:,2) + dt * Vy;
        
        if(mod(m,dm)==0)
            %% Plotten
            G = max(dL);
            G = max(G);
            Q = min(dL);
            Q = min(Q);
            G = max(G,-Q);
            if(G == 0)
                G = 1;
            end

            clf;
            
            str = sprintf('Zeitpunkt: %f',t);
            title(str);
            axis([x_centre - span_half,x_centre + span_half, y_centre - span_half,y_centre + span_half]);
            hold on;
            for i=1:n
                plot(X(i,1),X(i,2),'.k');
                if(D(i,i))
                    plot(X(i,1),X(i,2),'og');
                end
                for j=i:n
                    if(D(i,j))
                        plot([X(i,1),X(j,1)],[X(i,2),X(j,2)],'color',[0.5-0.4*dL(i,j)/G, 0, 0.5+0.4*dL(i,j)/G],'Linewidth',4);
                    end
                end
            end
            axis equal;
            str = sprintf('%i',m);
            saveas(gcf,[fpat,filesep,str],'jpg');
        end
        
    end


end