2017-11-09 4 views
0

Ich habe eine Reihe von Bildern, über die Polygone gezeichnet werden. Ich habe die Punkte dieser Polygone und zeichne diese mit Shapely und überprüfe, ob bestimmte Punkte von einem Eyetracker in die Polygone fallen.Wie kann ich ein Polygon mit Python spiegeln?

Nun, einige dieser Bilder sind gespiegelt, aber ich habe nicht die Koordinaten der Polygone in ihnen gezeichnet. Wie kann ich die Polygone horizontal spiegeln? Gibt es eine Möglichkeit, dies mit Shapely zu tun?

+0

Ich empfehle Ihnen, einen allgemeineren Tagg wie "Python" zu verwenden, damit Ihre Frage mehr Leute erreicht. – Klyner

Antwort

1

Wenn Sie ein Polygon in Bezug auf eine vertikale Achse spiegeln möchten, dh sie horizontal spiegeln, wäre eine scale Transformation (unter Verwendung des negativen Skalierungsfaktors) von shapely.affinity oder eine benutzerdefinierte Transformation zu verwenden :

from shapely.affinity import scale 
from shapely.ops import transform 
from shapely.geometry import Polygon 

def reflection(x0): 
    return lambda x, y: (2*x0 - x, y) 

P = Polygon([[0, 0], [1, 1], [1, 2], [0, 1]]) 
print(P) 
#POLYGON ((0 0, 1 1, 1 2, 0 1, 0 0)) 

Q1 = scale(P, xfact = -1, origin = (1, 0)) 
Q2 = transform(reflection(1), P) 

print(Q1) 
#POLYGON ((2 0, 1 1, 1 2, 2 1, 2 0)) 
print(Q2) 
#POLYGON ((2 0, 1 1, 1 2, 2 1, 2 0)) 
+0

Funktioniert perfekt. Vielen Dank! – Jancso

+0

@ Jancso mein Vergnügen! :) – ewcz

Verwandte Themen