Ejemplo n.º 1
0
 def get_transformation(self, coordinates):
     """Construct a transformation object"""
     atom1, atom2 = self.hinge_atoms
     direction = coordinates[atom1] - coordinates[atom2]
     direction /= np.linalg.norm(direction)
     direction *= np.random.uniform(-self.max_amplitude, self.max_amplitude)
     result = Translation(direction)
     return result
Ejemplo n.º 2
0
 def get_transformation(self, molecule):
     atom1, atom2 = self.hinge_atoms
     direction = molecule.coordinates[atom1] - molecule.coordinates[atom2]
     direction /= numpy.linalg.norm(direction)
     direction *= numpy.random.uniform(-self.max_amplitude,
                                       self.max_amplitude)
     result = Translation()
     result.t[:] = direction
     return result
Ejemplo n.º 3
0
 def get_transformation(self, coordinates):
     """Construct a transformation object"""
     atom1, atom2, atom3, atom4 = self.hinge_atoms
     a = coordinates[atom1] - coordinates[atom2]
     a /= np.linalg.norm(a)
     b = coordinates[atom3] - coordinates[atom4]
     b /= np.linalg.norm(b)
     direction = 0.5 * (a + b)
     direction *= np.random.uniform(-self.max_amplitude, self.max_amplitude)
     result = Translation(direction)
     return result
Ejemplo n.º 4
0
 def get_transformation(self, molecule):
     atom1, atom2, atom3, atom4 = self.hinge_atoms
     a = molecule.coordinates[atom1] - molecule.coordinates[atom2]
     a /= numpy.linalg.norm(a)
     b = molecule.coordinates[atom3] - molecule.coordinates[atom4]
     b /= numpy.linalg.norm(b)
     direction = 0.5 * (a + b)
     direction *= numpy.random.uniform(-self.max_amplitude,
                                       self.max_amplitude)
     result = Translation()
     result.t[:] = direction
     return result
Ejemplo n.º 5
0
 def randomize(self, center):
     self.transform(Translation(-np.array(center)))
     self.transform(Rotation.random())
     self.transform(Translation(center))
Ejemplo n.º 6
0
 def rotate(self, center, axis, angle):
     self.transform(Translation(-np.array(center)))
     self.transform(Rotation.from_properties(angle, axis, invert=False))
     self.transform(Translation(center))
Ejemplo n.º 7
0
 def translate(self, vector):
     self.transform(Translation(vector))