Вы делите 0/0
!
# (p.y-p2.y)*(p1.x-p2.x)
x = p.y - p2.y
x = 199 - 199.0 = 0
x1 = p1.x-p2.x
0 * x1 = 0* p1.x - 0* p2.x
Это значит
(p.y-p2.y)*(p1.x-p2.x) = 0
Теперь мы разрабатываем 0 этим:
#(p1.y-p2.y)
p1.y-p2.y
x = p.y - p2.y
x = 199 - 199.0 = 0
Так что в этом случае вы пытаетесь сделать 0/0
Затем в конце всего этого вы пытаетесь добавить p2.x
, и я считаю, что именно поэтому вы получаете ошибку cannot convert float NaN to integer
, а не ZeroDivisionError: integer division or modulo by zero
Это действительно легко решить. изменить if p1.y!=p2.y:
строка 4 на If p1.y-p2.y != 0: