с учетом двух точек найти класс наклона Python - PullRequest
0 голосов
/ 24 апреля 2019

Я новичок в python и пытаюсь выяснить, почему этот код не работает.



class Point:
  def __init__(self, x, y):
    self.x = x
    self.y = y

  def slope_from_origin (self,p1,p2):
      slope=((p2.y-p1.y)/(p2.x-p1.x))
      return Point(slope)

  def __str__ (self):
      return str(slope)

p=Point(6,7)
q=Point(3,4)
print(p.slope_from_origin(q))

Что я должен изменить, чтобы этот код работал?спасибо

1 Ответ

1 голос
/ 24 апреля 2019

Ваш расчет немного запутан:

slope_from_origin - это наклон, который отрезок линии проходит через начало координат Point(0, 0), и данная точка составляет.

slope_between_two_pointsэто наклон, который образует отрезок прямой, проходящий через две заданные точки.

slope - это скаляр, вы пытаетесь построить с ним Point и вернуть его

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def slope_between_two_points(self, p1=Point(0, 0)):  # uses default argument to define the origin
        if p1.x - self.x == 0:
            return float('inf')   # prevent dividing by zero when slope is infinite
       return (p1.y - self.y) / (p1.x - self.x)

    def slope_from_origin(self):
        return self.slope_between_two_points()

    def __str__ (self):
        return str(slope)

p = Point(6, 7)
q = Point(3, 4)
print(p.slope_between_two_points(q), p.slope_from_origin(), q.slope_from_origin())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...