Verifică dacă trei puncte sunt coliniare C++
Dându-se trei puncte în plan, să se verifice dacă acestea sunt coliniare sau nu.
Exemplu. Pentru punctele (1, 2)
, (2, 3)
și (3, 4)
, răspunsul este
DA
(vezi imaginea de mai jos):
Explicarea algoritmului
Există multe metode de a rezolva această problemă (folosind aria sau perimetrul, verificând dacă toate aparțin unei drepte — funcție de gradul I, etc). Ne vom axa pe noțiunea de pantă, deoarece este cel mai ușor de înțeles.
Ce este panta unei drepte?
Conform Wikipedia,
În matematică, panta unei drepte este o valoare numerică ce descrie direcția și înclinația unei drepte. Din punct de vedere geometric, panta reprezintă tangenta unghiului făcut de dreaptă cu orizontala.
Mai precis, pentru două puncte (x1, y1)
, (x2, y2)
cunoscute, avem panta m
= . Iată o reprezentare grafică de pe
Wikipedia:
Avem următoarea proprietate interesantă:
Trei puncte sunt coliniare dacă pantele oricăror două puncte sunt egale între ele.
Așadar, pentru soluția noastră vom calcula pantele celor trei drepte ce se pot forma dintre cele trei puncte, iar dacă sunt egale, atunci putem afirma că punctele sunt coliniare. Altfel, acestea nu sunt.
Implementare C++
#include <iostream>
using namespace std;
int main()
{
//Declarăm și citim coordonatele celor trei puncte
int x1, y1, x2, y2, x3, y3;
cout << "Primul punct: ";
cin >> x1 >> y1;
cout << "Al doilea punct: ";
cin >> x2 >> y2;
cout << "Al treilea punct: ";
cin >> x3 >> y3;
//Determinăm pantele (m)
double m12 = double(y2 - y1) / (x2 - x1),
m23 = double(y3 - y2) / (x3 - x2),
m13 = double(y3 - y1) / (x3 - x1);
if(m12 == m23 && m23 == m13) { //Dacă pantele sunt egale
cout << "DA";
} else {
cout << "NU";
}
return 0;
}
Alte resurse și bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0