2016-10-01 2 views
1

Ich versuche den ungefähren äquivalenten Punkt von einem Viereck zum anderen zu finden.Einen gleichwertigen Punkt in einem Viereck finden

quadrilateral equivalent point

Was ist eine gute Methode, um diesen Punkt zu finden?

Alle Informationen in die richtige Richtung wären großartig.

Dank

+1

Dies ist nur möglich, wenn (mindestens) die Punkte in einem Viereck mit den entsprechenden Punkten in dem anderen Viereck verknüpft sind. Einfaches Beispiel, was ist, wenn ein Quadrilateral ein Quadrat ist und das andere ein Diamant ist und der Punkt auf dem Quadrat, nach dem Sie suchen, in der Nähe der oberen linken Ecke des Quadrats ist. Soll die Antwort in der Nähe der linken Ecke des Diamanten oder der oberen Ecke sein? –

+0

@CharlesBretana Nun, vielleicht ist eine andere Möglichkeit, darüber nachzudenken, das zweite Viereck ist eine transformierte (skalierte, bewegte, verzerrte, rotierte usw.) Version des ersten Vierecks. Würde das das Problem lösbarer machen? –

+0

Ja, wenn für alle Punkte im ursprünglichen Viereck (oder mindestens drei) angegeben wird, an welchen Punkt des transformierten Vierecks der ursprüngliche Punkt transformiert wurde. –

Antwort

0

die Punkte [P1, P2, P3, P4] sein und lassen annehmen, dass sie in [Q1, Q2, Q3, Q4] durch eine affine Transformation von der Form überführt werden, wo x -> Mx + bM eine 2x2 Matrix ist und b ist ein konstanter Vektor. Die Idee ist, M zu finden und die Transformation auf P anzuwenden, um Q zu erhalten.

Lassen Sie v1 = P2 - P1, v2 = P3 - P1, w1 = Q2 - Q1, w2 = Q3 - Q1. Dann ist M die lineare Transformation, die [v1, v2] auf [w1, w2] gilt. Ein Weg M zu finden ist, durch die Berechnung des Matrizenproduktes

M = S * T 

wo S ist die 2x2 Matrix, deren Spalten die Vektoren w1 und w2 und T ist die inverse der Matrix, deren Spalten und v1v2.

In Bezug auf die Verschiebungsvektor b, kann es als

b = Q1 - M * P1 

Die Klärung ist hier berechnet werden, dass alles dies nur, wenn die vierten Punkte stehen im Einklang mit der Transformation, dh wenn

M * P4 + b = Q4 
korrekt ist

ansonsten ist das Q -quadrilateral keine affine Transformation des P -quadrilateral.

0

Sie können die allgemeinen baryzentrischen Koordinaten des Punktes gegen das erste Viereck finden und dann die baryzentrischen Koordinaten gegen das zweite Viereck anwenden, um den "äquivalenten" Punkt zu finden.

Es gibt viele verschiedene Möglichkeiten, die allgemeinen baryzentrischen Koordinaten für einen Punkt gegen ein Viereck (oder gegen ein n-seitiges Polygon) zu berechnen. Eine davon ist die Wachpress-Koordinate, die nur funktioniert, wenn das Polygon konvex ist. Für ein konvexes Vieleck mit den Eckpunkten V0, V1, ... Vn:

enter image description here

wir die Wachpress Koordinaten für den Punkt P innerhalb des Polygons als

enter image description here

wobei A (a berechnen kann, , b, c) ist der vorzeichenbehaftete Bereich des Dreiecks abc.

Dann können wir die baryzentrischen Koordinaten von P als

enter image description here

Der Äquivalenzpunkt P * gegen das neue Polygon mit Scheiteln V * i (oder Viereck in diesem Fall) berechnen kann als
berechnet werden

P * = \ Summierung (Wi * V * i) für i = 0 ~ n.

Verwandte Themen