All pastes #965983 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-01 11:52 UTC
rendered paste body

% 2.Fall verhindert Abbruch beim 1.Schleifendurchlauf
while aktPkt~=Q(1) | length(Q)==1
  R=P-ones(n,1)*P(aktPkt,:);  %Richtungsvektoren zu allen anderen Punkten
  w=atan2(R(:,2),R(:,1));     %Winkel der Richtungsvektoren
  w(w<0)=2*pi+w(w<0);         %shift [-pi,pi]->[0,2pi]
  w=w+(w<=wmin)*2*pi;         %Es kann nur mit Winkel > wmin weitergehen
  [wmin,hilf]=min(w);         %Minimalen Winkel bestimmen
  glWi=find(w==wmin);         %falls es >1 solche Punkte mit min. Winkel gibt
                              %diese Punkte finden und den mit dem max. Abstand
			      %zum letzten Punkt als naechsten nehmen
  [buffer,hilf]=max(R(glWi,1).*R(glWi,1)+R(glWi,2).*R(glWi,2));
  aktPkt=glWi(hilf);
  Q=[Q,aktPkt];               %Punkt in Liste aufnehmen
end;
Q=P(Q(1:length(Q)-1),:);                     %Umwandlung Indexvektor Q zu Punktmatrix Q