Drehen Sie die Linie um den Mittelpunkt, wenn Sie zwei Ecken haben

8

Ich habe versucht, eine Reihe von Linien um 90 Grad zu drehen (die zusammen eine Polylinie bilden). Jede Zeile enthält zwei Vertices, sagen wir (x1, y1) und (x2, y2). Was ich gerade versuche ist, um den Mittelpunkt der Linie zu drehen, gegeben die Mittelpunkte | x1 - x2 | und | y1 - y2 |. Aus irgendeinem Grund (ich bin nicht sehr mathematisch versiert) kann ich die Linien nicht richtig rotieren.

Könnte jemand verifizieren, dass die Mathematik hier korrekt ist? Ich denke, dass es korrekt sein könnte, aber wenn ich die Scheitelpunkte der Linie auf die neuen gedrehten Scheitelpunkte setze, greift die nächste Linie möglicherweise nicht den neuen (x2, y2) Scheitelpunkt der vorherigen Linie, wodurch die Linien falsch rotieren .

Hier ist was ich geschrieben habe:

%Vor%     
adchilds 12.02.2013, 21:22
quelle

2 Antworten

17

Die Koordinaten des Mittelpunkts eines Liniensegments zwischen den Punkten (x1, y1) und (x2, y2) ist:

%Vor%

Mit anderen Worten, es ist nur der Durchschnitt oder das arithmetische Mittel der Paare von x- und y-Koordinatenwerten.

Bei einer mehrfach segmentierten Linie oder Polylinie sind die x- und y-Koordinaten des logischen Mittelpunkts nur die entsprechenden Durchschnittswerte der x- und y-Werte aller Punkte. Ein Durchschnitt ist nur die Summe der Werte dividiert durch die Anzahl der Werte.

Um eine Polylinie um beliebige beliebige Punkte zu drehen, einschließlich ihrer eigenen Mitte, subtrahiere zuerst den x- und y-Wert des Drehpunkts von jeder ihrer Koordinaten und rotiere dann das Zwischenergebnis um den Winkel gewünscht, und schließlich den X- und Y-Wert des Drehpunkts zurück zu den X und Y jeder Koordinate hinzufügen. In geometrischen Begriffen: Übersetzen → Drehen → Nicht übersetzen.

Das numerische Ergebnis der drei Sätze von Berechnungen kann kombiniert und mit einem Paar mathematischer Formeln ausgedrückt werden, die alle gleichzeitig ausführen. So kann ein neuer Punkt (x ', y') erhalten werden, indem ein vorhandener Punkt (x, y) & thgr; rad um den Punkt (cx, cy) gedreht wird, indem:

verwendet wird %Vor%

Wenn Sie dieses mathematische / geometrische Konzept in Ihre Funktion integrieren, erhalten Sie Folgendes:

%Vor%     
martineau 12.02.2013, 21:40
quelle
2

Ihr zentraler Punkt wird sein:

%Vor%

weil du die Hälfte der Länge (x2 - x1) / 2 nimmst und sie zu dem Punkt hinzufügst, an dem deine Linie beginnt, in die Mitte zu gelangen.

Als Übung nehmen Sie zwei Zeilen:

%Vor%     
sdasdadas 12.02.2013 21:27
quelle

Tags und Links