add XDistance and YDistance constraints

This commit is contained in:
Josh Holtrop 2011-03-28 18:33:27 -04:00
parent 1021ff3e59
commit 05eb8e0324
2 changed files with 40 additions and 0 deletions

20
XDistance.py Normal file
View File

@ -0,0 +1,20 @@
from Constraint import Constraint
class Vertical(Constraint):
def __init__(self, shape1, pt1, shape2, pt2, dist):
self.shape1 = shape1
self.pt1 = pt1
self.shape2 = shape2
self.pt2 = pt2
self.dist
def toEqu(self):
varrefs1 = self.shape1.toEqu(pt1)[0]
varrefs2 = self.shape2.toEqu(pt2)[0]
coeffs = []
for i in range(len(varrefs1)):
coeffs.append((-1 * varrefs1[i], (self.shape1, i)))
for i in range(len(varrefs2)):
coeffs.append((1 * varrefs2[i], (self.shape2, i))
return [(coeffs, self.dist)]

20
YDistance.py Normal file
View File

@ -0,0 +1,20 @@
from Constraint import Constraint
class Horizontal(Constraint):
def __init__(self, shape1, pt1, shape2, pt2, dist):
self.shape1 = shape1
self.pt1 = pt1
self.shape2 = shape2
self.pt2 = pt2
self.dist = dist
def toEqu(self):
varrefs1 = self.shape1.toEqu(pt1)[1]
varrefs2 = self.shape2.toEqu(pt2)[1]
coeffs = []
for i in range(len(varrefs1)):
coeffs.append((-1 * varrefs1[i], (self.shape1, i)))
for i in range(len(varrefs2)):
coeffs.append((1 * varrefs2[i], (self.shape2, i))
return [(coeffs, self.dist)]