Esempio n. 1
0
 def test_repulsion_left(self):
     source = Vector2d(0,0)
     target = Vector2d(3,0)
     desired_distance = 10
     expected_force = Vector2d(-7,0)
     self.assertEquals(desired_distance, (source + expected_force - target).mag())
     self.assertEquals(expected_force, spring_force(source, target, desired_distance))
Esempio n. 2
0
 def test_attraction_right(self):
     source = Vector2d(0,0)
     target = Vector2d(10,0)
     desired_distance = 3
     expected_force = Vector2d(7,0)
     self.assertEquals(desired_distance, (source + expected_force - target).mag())
     self.assertEquals(expected_force, spring_force(source, target, desired_distance))
Esempio n. 3
0
 def consider_desired_length(self, piece, force, position, opposite_position):
     force += spring_force(position, opposite_position, piece.desired_length)
Esempio n. 4
0
 def attract_to_neighbours(self):
     for joint in self.joints.values():
         if joint.target_position:
             self.force += spring_force(joint.position, joint.target_position, 1.0) * 0.3
Esempio n. 5
0
 def attract_to_neighbours(self):
     for other in self.file.arriving_chunks.values():
         if other != self:
             desired_distance = abs(self.begin - other.begin) * 0.01
             self.force += spring_force(self.position, other.position, desired_distance)