function DreieckSWS

% http://geometrie.hs-nb.de/MATLAB-Programme/DreieckSWS.m   Bearbeitungsstand: 18.2.2004
% (C) Martin Nitschke, nitschke@hs-nb.de

clc;
close('all')
global ax
ax=[inf -inf inf -inf];
deg=pi/180;

A=[0;0];
c=[50;0];
b=[10;23];

B=A+c; C=A+b; a=C-B; C2=[C(1);C(2)-2*a(2)];
Polygon([C A B],'k','linewidth',1.5);
hold('on');
Polygon([C B],'--k','linewidth',1.5);
Kreisbogen(A+0.1*norm(a)*c/norm(c),A,A+0.1*norm(a)*b/norm(b),0,'k','linewidth',1.5);
hold('off')
axis('equal')
axis(ax)
axis('off')
print('-deps','DreieckSWS');

function Polygon(P,varargin);
global ax
plot(P(1,:),P(2,:),varargin{:})
if min(P(1,:))<ax(1)
  ax(1)=min(P(1,:));
end
if max(P(1,:))>ax(2)
  ax(2)=max(P(1,:));
end
if min(P(2,:))<ax(3)
  ax(3)=min(P(2,:));
end
if max(P(2,:))>ax(4)
  ax(4)=max(P(2,:));
end

function Kreisbogen(A,M,B,offset,varargin)
deg=pi/180;
[t1,r1]=cart2pol(A(1)-M(1),A(2)-M(2));
[t2,r2]=cart2pol(B(1)-M(1),B(2)-M(2));
if abs(r1-r2)>sqrt(eps)
  error('Kreisbogen: A und B liegen nicht auf einem Kreis mit Mittelpunkt M')
end
r=(r1+r2)/2;
t1=t1-offset;
t2=t2+offset;
if t2<t1
  t2=t2+2*pi;
end
t=linspace(t1,t2,round((t2-t1)/deg));
Polygon(repmat(M,size(t))+r*[cos(t);sin(t)],varargin{:});

