Ovako, dosao sam na ideju da uradim slijedece: Naci dijagonale pravougaonika, odnosno naci sve prave, odnosno duzine tih pravih kroz 2 tacke formulom d=sqr((x1-x2)*(x1-x2)-(y1-y2)*(y1-y2)). I kad nadjem sve prave onda ih upoređujem. Ako postoje dvije prave iste duzine, onda ispitaj da li im je tacka koja je tacno na pola ista, ako jeste onda je nadjen pravougaonik. Kao sto mi je poznato dijagonale kod pravougaonika su iste duzine i slijeku se u istoj tacki, ma koji god da je ugao izmedju njih. Napisao sam slijedeci dio koda koji se nadovezuje na ovo gore : "// ovdje ubaci dio za provjeru pravokutnika... " :
Code:
for(l=0;i<n;l++){
for(j=l+1;j<n;j++)
{
duzina[k]=sqrt((abs(T[i].Uzmi_x-T[j].Uzmi_x)*abs(T[i].Uzmi_x-T[j].Uzmi_x))+(abs(T[i].Uzmi_y-T[j].Uzmi_y)*abs(T[i].Uzmi_y-T[j].Uzmi_y)));
sredina_x[k]=abs((T[i].Uzmi_x-T[j].Uzmi_x)/2);
sredina_x[y]=abs((T[i].Uzmi_y-T[j].Uzmi_y)/2);
k++;
}
}
for(m=0;m<k;m++){
for(n=m+1;n<k;n++)
{
if(duzina[m]==duzina[n])
{
if((sredina_x[m]==sredina_x[n])&&(sredina_y[m]==sredina_y[n]))
{
cout<<"Nadjen je pravougaonik!";
break;
}
}
}
}
Napravio sam ove funkcije float Uzmi_x( float x){return x;} i Uzmi_y( float y){return y;} u sklopu klase tacka. Međutim, kad hocu da racunam duzinu, kompajler mi kaze: "invalid use of member (did you forget the '&' ? )".
Pa me zanima kako da uzmem x i y koordinate i ovako ih izracunam.
I jos jedno pitanje, mogu li nekako doznati koordinate tacaka ako sam ovako uradio taj kod?
Hvala puno!