https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line
https://www.youtube.com/watch?v=TOEi6T2mtHo
Я пытался реализовать этот метод в своем коде, но безрезультатно, я действительно считаю, что проблема заключается в инвертированной оси Y в Pygame иличто-то еще скрывается под моим взглядом?Какие-либо предложения?
Вот мой код:
x1 = other.pos1[0]
y1 = other.pos1[1]
x2 = other.pos2[0]
y2 = other.pos2[1]
x3 = self.pos1[0]
y3 = self.pos1[1]
x4 = self.pos2[0]
y4 = self.pos2[1]
den = (x1 - x2) * (y3 - y4) - (y1 * y2 * (x3 - x4))
if den == 0:
return
t = ((x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4)) / den
u = -(((x1 - x2) * (y1 - y3) - (y1 - y2) * (x1 - x3))) / den
if t > 0 and t < 1 and u > 0:
point = (x3 + u * (x4 - x3), y3 + u * (y4 - y3))
pygame.gfxdraw.filled_circle(surface, point[0], point[1], 3, (255, 0, 0))
return point
else:
return