Răspuns :
Răspuns:
#include <iostream>
#include <math.h>
using namespace std;
struct Punct{
double x,y;
};
struct Triunghi{
Punct M,N,P;
};
Triunghi T1,T2;
double Dist(Punct M, Punct N)
{
double MN=sqrt(pow(M.x-N.x,2)+pow(M.y-N.y,2));
return MN;
}
bool Asemenea(Triunghi T1, Triunghi T2)
{
double a1=Dist(T1.M,T1.N);
double b1=Dist(T1.M,T1.P);
double c1=Dist(T1.N,T1.P);
double a2=Dist(T2.M,T2.N);
double b2=Dist(T2.M,T2.P);
double c2=Dist(T2.N,T2.P);
bool e=(a1/a2==b1/b2 && a1/a2==c1/c2)||
(a1/b2==b1/c2 && a1/b2==c1/a2)||
(a1/c2==b1/a2 && a1/c2==c1/b2);
return e;
}
double Aria(Punct A, Punct B, Punct C)
{
double AB, AC, BC;
AB=Dist(A,B);
AC=Dist(A,C);
BC=Dist(B,C);
double p=(AB+BC+AC)/2;
double r=sqrt(p*(p-AB)*(p-AC)*(p-BC));
return r;
}
bool Interior(Punct A, Triunghi T2)
{
bool inter;
double e=Aria(T2.M,T2.N,T2.P)-(Aria(A,T2.N,T2.P)+Aria(T2.M,A,T2.P)+Aria(T2.M,T2.N,A));
if (e<0) e*=-1;
inter=(e<0.000001);
return inter;
}
int main()
{
cout << "Dati coordonatele varfurilor primului triunghi: \n";
cin >> T1.M.x >> T1.M.y;
cin >> T1.N.x >> T1.N.y;
cin >> T1.P.x >> T1.P.y;
cout << "Dati coordonatele varfurilor triunghiului 2: \n";
cin >> T2.M.x >> T2.M.y;
cin >> T2.N.x >> T2.N.y;
cin >> T2.P.x >> T2.P.y;
if (Aria(T1.M,T1.N,T1.P)==Aria(T2.M,T2.N,T2.P))
cout << "au arii egale";
else cout << "nu au arii egale";
cout << endl;
if (Asemenea(T1,T2))
cout << "sunt asemenea";
else cout << "nu-s asemenea";
cout << endl;
if (Interior(T1.M,T2) && Interior(T1.N,T2) && Interior(T1.P,T2))
cout << "T1 este in interior la T2";
else cout << "T1 nu este in interior la T2";
cout << endl;
return 0;
}
Explicație:
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!