Задача такая:
Разработать класс Sphere для представления сферы в трехмерном пространстве.
Обеспечить следующие методы класса:
- конструктор, который принимает 4 действительных числа: радиус, и 3 координаты центра пули. Если конструктор вызывается без аргументов, создать объект сферы с единичным радиусом и центром в начале координат. Если конструктор вызывается с 1 аргументом, создать объект сферы с соответствующим радиусом и центром в начале координат.
- метод get_volume(), какой возвращает вещественное число – объем пули, ограниченной текущей сферой.
- метод get_square(), какой возвращает вещественное число – площадь внешней поверхности сферы.
- метод get_radius(), какой возвращает вещественное число – радиус сферы.
- метод get_center(), какой возвращает тьюпл с 3 вещественными числами – координатами центра сферы в том же порядке, в яком они задаются в конструкторе.
- метод set_radius(r), который принимает 1 аргумент – вещественное число, и изменяет радиус текущей сферы, ничего не возвращая.
- метод set_center(x,y,z), который принимает 3 аргумента – действительных числа, и изменяет координаты центра.
- метод is_point_inside(x,y,z), который принимает 3 аргумента – действительных числа – координаты некоторой точки в пространстве (в том же порядке, что и в конструкторе), и возвращает логическое значение True или False в зависимости от того, находится ли эта точка внутри сферы.
Тесты из некорректными данными не проводятся.
Пример последовательности действий для тестирования класса:
s0 = Sphere(0.5) # test sphere creation with radius and default center
print s0.get_center() # (0.0, 0.0, 0.0)
print s0.get_volume() # 0.523598775598
print s0.is_point_inside(0, -1.5, 0) # False
s0.set_radius(1.6)
print s0.is_point_inside(0, -1.5, 0) # True
print s0.get_radius() # 1.6