2017-11-09 37 views
0

私はポリゴンが描画される一連の画像を持っています。私はそれらのポリゴンのポイントを持っており、これらをShapelyで描画し、アイトラッカーからの特定のポイントがポリゴンに入るかどうかをチェックします。Pythonを使用してポリゴンをミラーリングするにはどうすればよいですか?

これらの画像の一部はミラーリングされていますが、ポリゴンの座標は描画されていません。どのようにしてポリゴンを左右に反転させることができますか? Shapelyでこれを行う方法はありますか?

+0

「python」のような一般的なタグを使用することをお勧めします。質問が多くの人に届きます。 – Klyner

答えて

1

ポリゴンを縦軸に対して反転したい場合、つまり水平方向に反転する場合は、shapely.affinityで提供されるscale変換(負の単位の倍率を使用)を使用するか、またはカスタム変換を使用します:

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

完全に動作します。どうもありがとうございました! – Jancso

+0

@Jancso私の喜び! :) – ewcz

関連する問題