welchen Algorithmus, der i das Zentrum des Polygons (roter Punkt)
Fall nutzen können 1 zu bekommen: ich versuche, mit MAXX maxY, minX, minY und ich habe den falschen Punkt (schwarzer Punkt)
Fall 2: Ich versuche, die zweite Max- und Min-Koordinate X und Y zu bekommen, aber ich habe ein Problem mit dem Polygon, das Punkt weniger als 5
Fall 3: ich füge if point count < 5 then use case 1 else use case 2
hinzu, aber ich habe einige Fehler für einige Polygon
können Sie mir den richtigen Algorithmus für mich sagen?
Anmerkung:
explaination für 4. Bild
//ma mean max, mi mean min, X1 mean first, X2 mean second
maX1 = maX2 = maY1 = maY2 = 0;
miX1 = miX2 = miY1 = miY2 = 2000;
//aCoor is array of coordinate, format = {x1,y1,x2,y2,x3,y3,x4,y4,...}
for(int i=0; i<aCoor.count(); i+=2)
{
//point is list of point
point.Add(aCoor[i],aCoor[i + 1]);
//this to get second max X
if(maX2 < aCoor[i])
{
maX2 = aCoor[i];
//this to get first max x
if(maX1 < maX2) {maX1 += maX2; maX2 = maX1 - maX2; maX1 -= maX2;}
}
//this to get second min X
if(miX2 > aCoor[i])
{
miX2 = aCoor[i];
//this to get first min x
if(miX1 > miX2) {miX1 += miX2; miX2 = miX1 - miX2; miX1 -= miX2;}
}
//this to get second max Y
if(maY2 < aCoor[i + 1])
{
maY2 = aCoor[i + 1];
//this to get first max x
if(maY1 < maY2) {maY1 += maY2; maY2 = maY1 - maY2; maY1 -= maY2;}
}
//this to get second min Y
if(miY2 > aCoor[i + 1])
{
miY2 = aCoor[i + 1];
//this to get first min x
if(miY1 > miY2) {miY1 += miY2; miY2 = miY1 - miY2; miY1 -= miY2;}
}
}
if(point.Count < 5)
{
Xcenter = (maX1 + miX1)/2;
Ycenter = (maY1 + miY1)/2;
}
else
{
Xcenter = (maX2 + miX2)/2;
Ycenter = (maY2 + miY2)/2;
}
dies, wie weit ich tun
4. ist nicht das eine Polygon, sie sind zwei – Shaharyar
Sie sollten den relevanten Code, den Sie bisher haben. – Harrison
Tut mir leid, wenn repost, aber ich verstehe nicht wirklich, worüber sie reden und was die Lösung, weil es zu komplizieren ist. Kannst du mir erklären? Ich hoffe auf eine einfache Lösung – Zenithxm