# importation des modules from matplotlib import * import matplotlib.pyplot as plt # Entrée des coordonnées des points print("Entrer les coordonnées du 1er point :") x1=float(input("abscisse du premier point x1 :")) y1=float(input("ordonnée du premier point y1 :")) print("Premier point : A(",x1," ; ",y1,")") print("") print("Entrer les coordonnées du 2ème point :") x2=float(input("abscisse du deuxième point x2 :")) y2=float(input("ordonnée du deuxième point y2 :")) print("Deuxième point : B(",x2," ; ",y2,")") print("") # Détermination des équations réduites et cartésiennes (si elles existent) de la droite if x1==x2: if y1==y2: print("droite inexistante car points égaux") else: print("La droite passant par les points A(",x1," ; ",y1,") et B(",x2," ; ",y2,") est une") print("Droite verticale d'équation :") print("x =",x1) # dessin de la droite verticale plt.scatter(x1,0,c='blue',s=200,marker='o',edgecolors = 'none') plt.suptitle('Droite verticale (AB)', fontsize = 18) plt.xlim(-10,10) plt.ylim(-10,10) plt.xticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]) plt.yticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]) plt.plot([-10, 10], [0, 0], 'k-', lw=3) # trait plein noir épaisseur 3 axe des abscisse plt.plot([0, 0], [-10, 10], 'k-', lw=3) # trait plein noir épaisseur 3 axe des ordonnées plt.grid() plt.xlabel('axe des x') plt.ylabel('axe des y') plt.subplot().set_aspect('equal') plt.plot([x1,x1], [-10, 10], 'r-', lw=2) # trait plein rouge épaisseur 2 plt.show() else: m=(y2-y1)/(x2-x1) p=y1-m*x1 print("") print("La droite passant par les points A(",x1," ; ",y1,") et B(",x2," ; ",y2,") a pour") print("équation réduite :") if p>=0: print("y = ", m,"x + ",p) else: print("y = ", m,"x - ",abs(p)) def dessin(): # calcul de ymin ymax pour tracer la droite ymin=m*(-10)+p ymax=m*10+p # dessin des deux points plt.scatter(x1,y1,c='blue',s=200,marker='o',edgecolors = 'none') plt.scatter(x2,y2,c='blue',s=200,marker='o',edgecolors = 'none') # définition des axes plt.xlim(-10,10) plt.ylim(-10,10) # tracé des axes du repère plt.plot([-10, 10], [0, 0], 'k-', lw=3) # trait plein noir épaisseur 3 axe des abscisse plt.plot([0, 0], [-10, 10], 'k-', lw=3) # trait plein noir épaisseur 3 axe des ordonnées # tracé du quadrillage plt.xticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]) plt.yticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]) plt.grid() # aspect égal du quadrillage plt.subplot().set_aspect('equal') # étiquettes des axes et titre du graphique plt.xlabel('axe des x') plt.ylabel('axe des y') plt.suptitle('Droite (AB)', fontsize = 18) # tracé de la droite plt.plot([-10, 10], [ymin, ymax], 'r-', lw=2) # trait plein rouge épaisseur 2 plt.show() a=y2-y1 b=x1-x2 c=x2*y1-y2*x1 if b<0 and c<0: print("") print("et pour") print("équation cartésienne :") print(a,"x -",abs(b),"y -",abs(c)," = 0") elif b<0 and c>=0: print("") print("et pour") print("équation cartésienne :") print(a,"x -",abs(b),"y +",c," = 0") elif b>=0 and c<0: print("") print("et pour") print("équation cartésienne :") print(a,"x +",b,"y -",abs(c)," = 0") else: print("") print("et pour") print("équation cartésienne :") print(a,"x +",b,"y +",c," = 0") dessin()