Mathématiques en seconde générale et technologique – Algorithmes

Équations de la droite (AB)

Déterminer une équation de droite passant par deux points donnés.

X, Y = 0, 1

def v(a, b) :
    return (b[X] - a[X], b[Y] - a[Y])

def equation(a, b) :
    ab = v(a, b)
    if ab == (0, 0) :
        return None
    else :
        return "{} x + {} y + {} = 0".format(
            ab[Y], - ab[X], a[Y] * ab[X] - a[X] * ab[Y])

def equation_reduite(a, b) :
    ab = v(a, b)
    if ab[X] == 0 :
        if ab[Y] == 0 :
            return None
        else :
            return "x = {}".format(a[X])
    else :
        return "y = {} x + {}".format(
            ab[Y] / ab[X], a[Y] - (a[X] * ab[Y]) / ab[X])

def run(a, b) :
    eq = equation(a, b)
    if eq :
        eqred = equation_reduite(a, b)
        print("La droite passant par les points de coordonnées {} et {} a pour équation {}, c'est-à-dire, sous forme réduite, {}."
                  .format(a, b, eq, eqred))
    else :
        print("Les points de coordonnées {} et {} ne définissent pas une droite, car ils sont un seul point."
                  .format(a, b))
    print()
        
run((1, 2), (3, 3))
run((0, 5), (1, 5))
run((7, 0), (7, 1))
run((11, 13), (11, 13))
La droite passant par les points de coordonnées (1, 2) et (3, 3) a pour équation 1 x + -2 y + 3 = 0, c'est-à-dire, sous forme réduite, y = 0.5 x + 1.5.

La droite passant par les points de coordonnées (0, 5) et (1, 5) a pour équation 0 x + -1 y + 5 = 0, c'est-à-dire, sous forme réduite, y = 0.0 x + 5.0.

La droite passant par les points de coordonnées (7, 0) et (7, 1) a pour équation 1 x + 0 y + -7 = 0, c'est-à-dire, sous forme réduite, x = 7.

Les points de coordonnées (11, 13) et (11, 13) ne définissent pas une droite, car ils sont un seul point.

Lionel Avon