%
% function schnittpunkt( a, b, c, d )
%    Berechnung von Geraden-Schnittpunkten
%      y1 = a * x + b
%      y2 = c * x + d
%
%    Testaufrufe:
%      schnittpunkt( 1, 0, -1,  0 );
%      schnittpunkt( 2, 3,  5, -3 );
%      schnittpunkt( 3, 0,  3,  1 );
%
function schnittpunkt( a, b, c, d )
   
   % A * P = r, P = [x;y] : Schnittpunkt
   A = [ -a, 1; -c, 1 ];
   % rechte Seite berechnen
   r = [ b; d ];
   
   % Test auf Lösbarkeit
   dA = det( A );
   if( abs( dA ) < eps )
      fprintf( 'Geraden sind parallel, kein Schnittpunkt \n' );
      return;
   end
   
   %  Aufgabe lösen 
   P = A \ r;
   
   % Ausgabe des Schnittpunkts
   fprintf( 'Schnittpunkt P = (%g,%g) \n', P(1), P(2) ); 
end