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