Rozwiązane

PYTHON
Napisz program, który dla podanych trzech punktów A,B,C sprawdzi, czy punkt C należy do odcinka AB.



Odpowiedź :

Odpowiedź:

x_A=int(input('Podaj pierwszą współrzędną punktu A: '))

y_A=int(input('Podaj drugą współrzędną punktu A: '))

x_B=int(input('Podaj pierwszą współrzędną punktu B: '))

y_B=int(input('Podaj drugą współrzędną punktu B: '))

x_C=int(input('Podaj pierwszą współrzędną punktu C: '))

y_C=int(input('Podaj drugą współrzędną punktu C: '))

if x_A==x_B and x_A==x_C:

 run='t'

elif x_A==x_B and x_A!=x_C:

 if y_A==y_B:

   run='t'

 else:

   run='n'

else:

 a_AB=(y_B-y_A)/(x_B-x_A)

 a_AC=(y_C-y_A)/(x_C-x_A)

 if a_AB==a_AC:

   run='t'

 else:

   run='n'

if run=='t':

 if x_A<=x_C<=x_B or x_A>=x_C>=x_B:

   if y_A<=y_C<=y_B or y_A>=y_C>=y_B:

     print('\nPunkt C należy do odcinka AB.')

   else:

     print('\nPunkt C nie należy do odcinka AB')

 else:

   print('\nPunkt C nie należy do odcinka AB')

else:

 print('\nPunkty A, B i C nie są współliniowe. W związku z tym, punkt C nie należy do odcinka AB.')

Wyjaśnienie:

Musimy sprawdzić dwa warunki:

  1. Czy punktu A, B i C są współliniowe.
  2. Czy współrzędne punktu C znajdują się pomiędzy współrzędnymi punktów A i B.

Ad. 1

Aby sprawdzić, czy punkty A, B i C są współliniowe, wystarczy sprawdzić, czy współczynniki kierunkowe prostych AB i AC są równe.

Współczynnik kierunkowy prostej AB, gdzie:

[tex]A(x_A,\ y_A),\ B(x_B,\ y_B)[/tex]

obliczamy ze wzoru:

[tex]a=\dfrac{y_B-y_A}{x_B-y_B}[/tex]

Ten skrypt z opisem znajduje się w zadaniu:
https://brainly.pl/zadanie/21723218

Ad. 2

Przyjmijmy:

[tex]A(x_A,\ y_A),\ B(x_B,\ y_B),\ C(x_C,\ y_C)[/tex]

Wówczas sprawdzamy, czy:

[tex]x_A\leq x_C\leq x_B\ \vee\ x_A\geq x_C\geq x_B[/tex]

oraz

[tex]y_A\leq y_C\leq y_B\ \vee\ y_A\geq y_C\geq y_B[/tex]

Zobacz obrazek Animaldk