# HG changeset patch # User Laman # Date 2017-04-08 15:46:56 # Node ID 5bf35728ab2bd78f62bc6fce7934be854325b933 # Parent 4c1ba49ea8592d73f26d91a053a6d921555e9c19 imgView fix: grid stays on its place on resize. refactored Corners a little diff --git a/src/corners.py b/src/corners.py --- a/src/corners.py +++ b/src/corners.py @@ -26,19 +26,6 @@ class Corners: self.corners[index]=a - - ## Computes twice the area of the triangle formed by points a,b,c. - # - # @return positive value for points oriented counter-clockwise, negative for clockwise, zero for degenerate cases. - def _doubleTriangleArea(a,b,c): - return (a.x-b.x)*(c.y-a.y)-(c.x-a.x)*(a.y-b.y) - - - def _slope(a,b): - if(b.x==a.x): return float("inf") - return (b.y-a.y)/(b.x-a.x) - - ## Order the corners (0,1,2,3) so they make a quadrangle with vertices KLMN in counter-clockwise order, K being in the upper left. # # For four points ABCD, there are 24 possible permutations corresponding to the desired KLMN. @@ -64,10 +51,10 @@ class Corners: if len(self.corners)!=4: return False # erroneus call a,b,c,d=self.corners - abc=Corners._doubleTriangleArea(a,b,c) - abd=Corners._doubleTriangleArea(a,b,d) - acd=Corners._doubleTriangleArea(a,c,d) - bcd=Corners._doubleTriangleArea(b,c,d) + abc=doubleTriangleArea(a,b,c) + abd=doubleTriangleArea(a,b,d) + acd=doubleTriangleArea(a,c,d) + bcd=doubleTriangleArea(b,c,d) if any(x==0 for x in (abc,abd,acd,bcd)): return False # collinear degenerate @@ -83,7 +70,7 @@ class Corners: for i,corner in enumerate(self.corners): # find the NK edge: going right-left with the lowest slope, secondarily the one going down ii=(i+1)%4 - slope=abs(Corners._slope(corner,self.corners[ii])) + slope=abs(getSlope(corner,self.corners[ii])) if corner.x>self.corners[ii].x and (slope