Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

AW: Rectangle finden, daß von 2 Punkten aufgespannt wird

  Alt 7. Feb 2014, 20:11
Zitat:
Nee, das Rechteck ist schon eindeutig?
Nope. Der Winkel lässt sich doch aus den Punkten berechnen.

Aber aus deiner Skizze geht hervor, dass du den Winkel zwischen der horizontalen und der oberen Seite meinst. dann passt's.

Ich würde das Koordinatensystem um den Winkel drehen. Danach suchst du das achsparallele Rechteck und dreht die neuen zwei Punkte wieder zurück.
Die Formel kannst du dann auch in eine Zeile schreiben und schreiben "ist ja anschaulich korrekt"

Ich poste hier mal frech den MATLAB-Quellcode:
Code:
for phi = 0:0.01:2
   P1 = [1;4];
   P3 = [3;2];
   %phi = 0.5;

   R = [cos(phi), -sin(phi); sin(phi), cos(phi)];

   NewP = R * [P1,P3];
   P2 = R' * NewP([1; 4]);
   P4 = R' * NewP([3; 2]);

   plot([P1(1), P2(1), P3(1), P4(1), P1(1)], [P1(2), P2(2), P3(2), P4(2), P1(2)], 'o-'); daspect([1 1 1])
   xlim([-1 6]);
   ylim([-1 6])
   drawnow;
   pause(0.01)
end
Du siehst (vielleicht) dass ich die gegebenen Punkte P1 und P3 getauft habe. P2 errechnet sich dann nach R' * (xx(R*P1); yy(R*P2))
wobei xx(k) bedeuten soll "x-Komponente des Vektors k" und yy analog. R' ist die transponierte von R.
P4 = R' * (xx(R*P3); yy(R*P1))
  Mit Zitat antworten Zitat