aboutsummaryrefslogtreecommitdiff
path: root/challenge-027/lubos-kolouch/python/ch27_1.py
blob: c1bf6589e4f9f4b8c3a31da145fb11b33d5ed2ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! python3

import sys

def get_intersection(points):
    a = int(points[1])
    b = int(points[2])
    c = int(points[3])
    d = int(points[4])

    p = int(points[5])
    q = int(points[6])
    r = int(points[7])
    s = int(points[8])

    det = ( a - c ) * ( q - s ) - ( b - d ) * ( p - r )

    if det == 0:
        return 0

    # Let's assume the lines are infinitely long
    px = ( a * d - b * c ) * ( p - r ) - ( a - c ) * ( p * s - q * r ) / det;
    py = ( a * d - b * c ) * ( q - s ) - ( b - d ) * ( p * s - q * r ) / det;

    return ( [ px, py ] );

if len(sys.argv) != 9:
    print('Usage: ch-1.pl a b c d p q r s');
    sys.exit()

result = get_intersection(sys.argv)

print(result)