Salve a tutti!
Ho un problema con il codice seguente che mi dovrebbe restituire, dati 4 vertici(x,y) , semplicemente 2 punti (minx, miny) ; (maxx, maxy)
[I]Polygon::Polygon(int a)
{
num = a;
Points = new Point[num]; //la classe Point definisce x e y di un
punto
}
Point *Polygon::getOutbox()
{
Point *r[2];
r[0] = new Point(Points[0].x,Points[0].y);
r[1] = new Point(Points[0].x,Points[0].y);
for (int i=0;i<num;i++)
{
Point *p = new Point(Points[i].x,Points.y);
if (p->x < r[0]->x) r[0]->x = p->x;
if (p->x > r[1]->x) r[1]->x = p->x;
if (p->y < r[0]->y) r[0]->y = p->y;
if (p->y > r[1]->y) r[1]->y = p->y;
cout << r[0]->x << r[0]->y << endl;
cout << r[1]->x << r[1]->y << endl;
delete p;
}
return r[0];
}
Dal main faccio eseguire il calcolo:
[I]main()
{
Polygon *plyP = new Polygon(4);
plyP->Points[0] = (Point)* new Point(1,1);
plyP->Points[1] = (Point)* new Point(2,5);
plyP->Points[2] = (Point)* new Point(7,3);
plyP->Points[3] = (Point)* new Point(5,1);
Point *pob;
pob = plyP->getOutbox();
for (int i=0;i<2;i++) cout << pob[i].x << " " << pob.y << endl;
}
ed il risultato è:
11
11
25
11
75
11
75
1 1 // QUESTO RUSULTATO E' CORRETTO
3.50325e-44 7 // QUESTO NO - DOVREBBE ESSERE l'ULTIMA COPPIA CIOE'
(7 5)
Penso che se mi da correttamente i valori calcolati nel for cioè
11
11
25
11
75
11
75
l'errore sia nella restituzione return *r ma non riesco a capire dove!!
Ringrazio chiunque voglia darmi una mano!!