def initialize_composite_transformation(self): self.transformation_context = "composite transformation" right_angle = math.pi / 2.0 self.start_position_coordinates = (1.0, 100.0, 200.0, 300.0) delta_position = Position.from_xyz((2.0, 3.0, 4.0)) self.stop_position_coordinates = (1.0, 297.0, 102.0, 204.0) self.start_direction_coordinates = (0.0, math.sqrt(0.4), math.sqrt(0.5), math.sqrt(0.1)) self.stop_direction_coordinates = (0.0, math.sqrt(0.1), math.sqrt(0.4), math.sqrt(0.5)) first_transform = Transformation.rotation_about_x_axis(right_angle) second_transform = Transformation.translation_by_position(delta_position) third_transform = Transformation.rotation_about_z_axis(right_angle) self.transformation_under_test = first_transform.compose(second_transform).compose(third_transform)
def initialize_translation(self): self.transformation_context = "translation" self.start_position_coordinates = (1.0, 20.0, 30.0, 40.0) self.stop_position_coordinates = (1.0, 22.0, 33.0, 44.0) delta_position = Position.from_xyz((2.0, 3.0, 4.0)) self.start_direction_coordinates = (0.0, math.sqrt(0.4), math.sqrt(0.5), math.sqrt(0.1)) self.stop_direction_coordinates = self.start_direction_coordinates self.transformation_under_test = Transformation.translation_by_position(delta_position)
def initialize_rotation_in_z(self): self.transformation_context = "rotation in z" angle = math.pi / 6.0 cosine_of_angle = math.cos(angle) sine_of_angle = math.sin(angle) self.start_position_coordinates = (1.0, 100.0, 200.0, 300.0) self.stop_position_coordinates = ( 1.0, 100.0 * cosine_of_angle - 200.0 * sine_of_angle, 200.0 * cosine_of_angle + 100.0 * sine_of_angle, 300.0, ) x = math.sqrt(0.4) y = math.sqrt(0.5) z = math.sqrt(0.1) self.start_direction_coordinates = (0.0, x, y, z) self.stop_direction_coordinates = ( 0.0, x * cosine_of_angle - y * sine_of_angle, y * cosine_of_angle + x * sine_of_angle, z, ) self.transformation_under_test = Transformation.rotation_about_z_axis(angle)