add XDistance and YDistance constraints
This commit is contained in:
parent
1021ff3e59
commit
05eb8e0324
20
XDistance.py
Normal file
20
XDistance.py
Normal 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
20
YDistance.py
Normal 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)]
|
Loading…
x
Reference in New Issue
Block a user