def test_line_intersection(): assert asa(120, 8, 52) == \ Triangle( Point(0, 0), Point(8, 0), Point(-4*cos(19*pi/90)/sin(2*pi/45), 4*sqrt(3)*cos(19*pi/90)/sin(2*pi/45))) assert Line((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Line((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (10, 10)).contains(Segment((1, 1), (2, 2))) is True assert Segment((1, 1), (2, 2)) in Line((0, 0), (10, 10)) x = 8 * tan(13 * pi / 45) / (tan(13 * pi / 45) + sqrt(3)) y = (-8*sqrt(3)*tan(13*pi/45)**2 + 24*tan(13*pi/45)) / \ (-3 + tan(13*pi/45)**2) assert Line(Point(0, 0), Point(1, -sqrt(3))).contains(Point(x, y)) is True
def test_line_intersection(): assert asa(120, 8, 52) == \ Triangle( Point(0, 0), Point(8, 0), Point(-4*cos(19*pi/90)/sin(2*pi/45), 4*sqrt(3)*cos(19*pi/90)/sin(2*pi/45))) assert Line((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Line((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (10, 10)).contains(Segment((1, 1), (2, 2))) is True assert Segment((1, 1), (2, 2)) in Line((0, 0), (10, 10)) x = 8*tan(13*pi/45)/(tan(13*pi/45) + sqrt(3)) y = (-8*sqrt(3)*tan(13*pi/45)**2 + 24*tan(13*pi/45)) / \ (-3 + tan(13*pi/45)**2) assert Line(Point(0, 0), Point(1, -sqrt(3))).contains(Point(x, y)) is True
def test_line_intersection(): assert asa(120, 8, 52) == \ Triangle( Point(0, 0), Point(8, 0), Point(-4*cos(19*pi/90)/sin(2*pi/45), 4*sqrt(3)*cos(19*pi/90)/sin(2*pi/45))) assert Line((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Line((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Ray((1, 0), (1, 2))) == \ [Point(1, 1)] assert Ray((0, 0), (1, 1)).intersection(Segment((1, 0), (1, 2))) == \ [Point(1, 1)] assert (Ray((0, 0), angle=-pi).intersection(Segment( (-1, 0), (2, 0))) == [Segment((-1, 0), (0, 0))]) assert Ray((0, 0), (10, 10)).contains(Segment((1, 1), (2, 2))) is True assert Segment((1, 1), (2, 2)) in Line((0, 0), (10, 10)) x = 8 * tan(13 * pi / 45) / (tan(13 * pi / 45) + sqrt(3)) y = (-8*sqrt(3)*tan(13*pi/45)**2 + 24*tan(13*pi/45)) / \ (-3 + tan(13*pi/45)**2) assert Line(Point(0, 0), Point(1, -sqrt(3))).contains(Point(x, y)) is True # issue sympy/sympy#2941 def _check(): for f, g in itertools.product(*[(Line, Ray, Segment)] * 2): l1 = f(a, b) l2 = g(c, d) assert l1.intersection(l2) == l2.intersection(l1) # intersect at end point c, d = (-2, -2), (-2, 0) a, b = (0, 0), (1, 1) _check() # midline intersection c, d = (-2, -3), (-2, 0) a, b = (0, 0), (1, 1) _check()