Найти - Пользователи
Полная версия: Как разработать класс Sphere ?
Начало » Центр помощи » Как разработать класс Sphere ?
1
Xryst
Здраствуйте, подкажите, как разработать класс Sphere ?
Задача такая:

Разработать класс 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

py.user.next
https://en.wikipedia.org/wiki/Sphere
Там формулы площади и объёма.

Xryst
метод get_square(), какой возвращает вещественное число – площадь внешней поверхности сферы
surface или area, square - площадь на улице от слова квадрат.

Xryst
метод is_point_inside(x,y,z)
Расстояние между точками в пространстве равно модулю вектора.
теория
terabayt
может пора уже самому задания делать?
import math
class Sphere:
    def __init__(self, r=1.0, x=0.0, y=0.0, z=0.0):
        self.r, self.x, self.y, self.z = r, x, y, z
    def get_volume(self):
        volume = 4 / 3.0 * math.pi * self.r ** 3
        return volume 
    def get_square(self):
        square = 4 * math.pi * self.r ** 2
        return square 
    def get_radius(self):
        return self.r
    def get_center(self):
        return (self.x, self.y, self.z)
    def set_radius(self, r):
        self.r = r
    def set_center(self, x, y, z):
        self.x, self.y, self.z = x, y, z
    def is_point_inside(self, x, y, z):
        if math.sqrt((self.x - x) ** 2 + (self.y - y) ** 2 + (self.z - z) ** 2) <= self.r:
            return True
        return False
комментировать код не буду
и так все понятно
Xryst
terabayt
может пора уже самому задания делать?
py.user.next
https://en.wikipedia.org/wiki/SphereТам формулы площади и объёма.

Я просто не имел понятия как работать из класом, спасибо большое !
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB