def test_sample_point_in_sphere(): for distance in range(1, 100): distance = distance + np.random.rand() point = sample_point_in_sphere(distance, top_only=True) assert point[1] > 0 # tests top assert np.isclose(calculate_norm(point), distance) norm = calculate_norm(sample_point_in_sphere(distance, top_only=False)) assert np.isclose(norm, distance)
def _sample_parameters(self): distance = sample_uniformly(self.distance) camera_origin = sample_point_in_sphere(distance, self.top_only) camera_origin = random_perturbation(camera_origin, self.epsilon) light_intensity = sample_uniformly(self.light_intensity) return camera_origin, light_intensity
def _sample_camera_origin(self): distance = sample_uniformly(self.distance) camera_origin = sample_point_in_sphere(distance, self.top_only) camera_origin = random_perturbation(camera_origin, self.epsilon) return camera_origin