Пожалуйста помогите решить задачу.

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
Опишите класс точка, представляющая точку в пространстве (x, y, z). Реализуйте перегруженные операции а) нахождения меньшего объекта (<): менее удаленного от центра (0, 0, 0), б) проверка равенства удаления точек от центра координат (==), а также методы: а) конструктор, б) вывод, в) формирование точки, симметричной данной точке относительно точки оси Х, г) длину отрезка, проведенного из текущей точки до второй точки. Не имею понятия как это написать. Поэтому обращаюсь к вам, дорогие форумчане.
 

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
Не имею понятия как это написать.
Что конкретно не понимаешь?
Вот например класс:
Python:
class point:
    x = 0
    y = 0
    x = 0
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    def getPoint(self):
        print(self.x)
        print(self.y)
        print(self.z)

p = point(2, 3, 5) # вызываем конструктор
p.getPoint()        # выводит координаты точки
 
  • Мне нравится
Реакции: USER: PIP_INSTALL

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
Что конкретно не понимаешь?
Вот например класс:
Python:
class point:
    x = 0
    y = 0
    x = 0
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    def getPoint(self):
        print(self.x)
        print(self.y)
        print(self.z)

p = point(2, 3, 5) # вызываем конструктор
p.getPoint()        # выводит координаты точки
Не понимаю задачу полностью. Не учил классы. А интересно до чертиков как это решается.
 

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
Не понимаю задачу полностью. Не учил классы. А интересно до чертиков как это решается.
Дальше все просто. Делаешь в классе функции а(), б(), с() которые будут выполнять поставленую задачу. А для начала лучше почитать про классы или что на ютубе посмотри
 
  • Мне нравится
Реакции: USER: PIP_INSTALL

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
Дальше все просто. Делаешь в классе функции а(), б(), с() которые будут выполнять поставленую задачу. А для начала лучше почитать про классы или что на ютубе посмотри
я сделал кусок вот такой по примеру вашего ответа.
class point:
x = 0
y = 0
x = 0
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z

def getPoint(self):
print(self.x)
print(self.y)
print(self.z)

def antiPoint(self):
print(self.x)
print(-(self.y))
print(self.z)

def Otrezok(self):
pass


p = point(2, 3, 5)
p.getPoint()
print(
)
p.antiPoint()

возник вопрос. Как расчитать длину в 3D плоскости
ща пошарю в инете
 

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
возник вопрос. Как расчитать длину в 3D плоскости
ща пошарю в инете
Шта? Точка имеет только три координаты. Плоскость в 3D имеет координаты:
Python:
px = p(x, y, z)
px = p(x, y, z)
pz = p(x, y, z)
plane(px, py, px ) # ну то есть плостость задается тремя точками
 
  • Мне нравится
Реакции: USER: PIP_INSTALL

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
Шта? Точка имеет только три координаты. Плоскость в 3D имеет координаты:
Python:
px = p(x, y, z)
px = p(x, y, z)
pz = p(x, y, z)
plane(px, py, px ) # ну то есть плостость задается тремя точками
не понимаю к чему это. Ну да. Точка имеет три координаты. А что?
 

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
Шта? Точка имеет только три координаты. Плоскость в 3D имеет координаты:
Python:
px = p(x, y, z)
px = p(x, y, z)
pz = p(x, y, z)
plane(px, py, px ) # ну то есть плостость задается тремя точками
Нашел вот формулу. √(xb - xa)2 + (yb - ya)2 + (zb - za)2 попробовал перевести в Python. Пока что не получается.
 

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
г) длину отрезка, проведенного из текущей точки до второй точки
А зачем тебе в 3Д координаты если надо просто найти отрезок от А до Б?

Python:
    def line(self):
        a = self.x*self.x
        b = self.y*self.y
        res = math.sqrt(a+b)
        print(res)
 
  • Мне нравится
Реакции: USER: PIP_INSTALL

USER: PIP_INSTALL

Новичок
Пользователь
Май 2, 2020
9
0
1
А зачем тебе в 3Д координаты если надо просто найти отрезок от А до Б?

Python:
    def line(self):
        a = self.x*self.x
        b = self.y*self.y
        res = math.sqrt(a+b)
        print(res)
потому что отрезок находится в 3D плоскости.
 

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
потому что отрезок находится в 3D плоскости.

Python:
# если есть отрезок 1м это x=1, y=0, z=0
p = point(1, 0, 0)
# если надо сместить по x в сторону на n метров вправо
p = point(1+n, 0, 0)
# если надо сместить по x в сторону на -n метров влево
p = point(1-n, 0, 0)
# или просто переделать функцию line()
    def line(self, x, y):
        self.x = x
        self.y = y
        a = self.x*self.x
        b = self.y*self.y
        res = math.sqrt(a+b)
        print(res)
p.line(1,0)
 

Форум IT Специалистов