Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
 summaryrefslogtreecommitdiffstats log msg author committer range
path: root/helpers.py
diff options
 context: 12345678910152025303540 space: includeignore mode: unifiedssdiff
author committer Gary Martin 2010-10-05 21:19:32 (GMT) Gary Martin 2010-10-05 21:19:32 (GMT) d946ab2b442df0118dc7e3d2d51ab30f3fb583cd (patch) b6b112dc9edd1e779d2e670fff416b85987c3c31 /helpers.py 2c6366f09521776838a637b4ca6f83c876022b79 (diff)
More pylint fixes (mainly trailing spaces).
Diffstat (limited to 'helpers.py')
-rw-r--r--helpers.py103
1 files changed, 51 insertions, 52 deletions
 diff --git a/helpers.py b/helpers.pyindex 3348f15..889534b 100644--- a/helpers.py+++ b/helpers.py@@ -24,37 +24,37 @@ import math # distance calculator, pt1 and pt2 are ordred pairs def distance(pt1, pt2):- return math.sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] -pt2[1]) ** 2)+ return math.sqrt((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2) # returns the angle between the line segment from pt1 --> pt2 and the x axis, from -pi to pi def getAngle(pt1,pt2): xcomp = pt2[0] - pt1[0] ycomp = pt1[1] - pt2[1]- return math.atan2(ycomp,xcomp)+ return math.atan2(ycomp, xcomp) # returns a list of ordered pairs that describe an equilteral triangle around the segment from pt1 --> pt2 def constructTriangleFromLine(p1,p2):- halfHeightVector = (0.57735*(p2[1] - p1[1]), 0.57735*(p2[0] - p1[0]))+ halfHeightVector = (0.57735 * (p2[1] - p1[1]), 0.57735 * (p2[0] - p1[0])) p3 = (p1[0] + halfHeightVector[0], p1[1] - halfHeightVector[1]) p4 = (p1[0] - halfHeightVector[0], p1[1] + halfHeightVector[1])- return [p2,p3,p4]+ return [p2, p3, p4] # returns the area of a polygon def polyArea(vertices): n = len(vertices) A = 0- p=n-1+ p=n - 1 q=0- while q= 0.0 and bCROSScp >= 0.0 and cCROSSap >= 0.0 -def polySnip(vertices,u,v,w,n):+ aCROSSbp = ax * bpy - ay * bpx+ cCROSSap = cx * apy - cy * apx+ bCROSScp = bx * cpy - by * cpx + return aCROSSbp >= 0.0 and bCROSScp >= 0.0 and cCROSSap >= 0.0++def polySnip(vertices, u, v, w, n): EPSILON = 0.0000000001- + Ax = vertices[u][0] Ay = vertices[u][1]- + Bx = vertices[v][0] By = vertices[v][1]- + Cx = vertices[w][0] Cy = vertices[w][1]- - if EPSILON > (((Bx-Ax)*(Cy-Ay)) - ((By-Ay)*(Cx-Ax))): return False- - for p in range(0,n):++ if EPSILON > (((Bx-Ax) * (Cy - Ay)) - ((By - Ay) * (Cx - Ax))): return False++ for p in range(0, n): if p == u or p == v or p == w: continue- Px = vertices[p][0];- Py = vertices[p][1]; - if insideTriangle((Px,Py),((Ax,Ay),(Bx,By),(Cx,Cy))): return False;- - return True;- - + Px = vertices[p][0]+ Py = vertices[p][1]+ if insideTriangle((Px, Py), ((Ax, Ay), (Bx, By), (Cx, Cy))): return False++ return True++ # decomposes a polygon into its triangles def decomposePoly(vertices): vertices = list(vertices) n = len(vertices) result = [] if(n < 3): return [] # not a poly!- + # force a counter-clockwise polygon if 0 >= polyArea(vertices): vertices.reverse()- - # remove nv-2 vertices, creating 1 triangle every time ++ # remove nv-2 vertices, creating 1 triangle every time nv = n- count = 2*nv # error detection- m=0- v=nv-1- while nv>2:+ count = 2 * nv # error detection+ m = 0+ v = nv - 1+ while nv > 2: count -= 1- if 0>= count:+ if 0 >= count: return [] # Error -- probably bad polygon- + # three consecutive vertices u = v - if nv<=u: u = 0 # previous- v = u+1- if nv<=v: v = 0 # new v- w = v+1- if nv<=w: w = 0 # next-- if(polySnip(vertices,u,v,w,nv)):- + if nv <= u: u = 0 # previous+ v = u + 1+ if nv <= v: v = 0 # new v+ w = v + 1+ if nv <= w: w = 0 # next++ if(polySnip(vertices, u, v, w, nv)):+ # record this triangle- result.append((vertices[u],vertices[v],vertices[w]))- - m+=1+ result.append((vertices[u], vertices[v], vertices[w]))++ m += 1 # remove v from remaining polygon vertices.pop(v) nv -= 1 # reset error detection- count = 2*nv- return result-+ count = 2 * nv+ return result \ No newline at end of file