Die Art, wie das Gebiet am Ende aussieht, ist nicht wichtig, es ist nur wichtig, dass die Größe gleich ist, beide Bereiche zusammen.
Da es nahezu unendlich viele Möglichkeiten sonst, ich werde mich auf Ergebnisse beschränken, in denen x = y
, aus dem einfachen Grund, dass Sie nicht mit dummen Vektoren wie (0.5,80000)
am Ende, sondern ein ausgewogener (200,200)
. Diese
ist gar nicht so schwer, wenn man es auch dreht algebraisch:
float result_area = first_area + second_area;
den Bereich Berechnung ist einfach:
float area = myVector.X * myVector.Y;
So machen die Summe der Flächen auch leicht:
float result_area = myFirstVector.X * myFirstVector.Y + mySecondVector.X * mySecondVector.Y;
Zum Beispiel sagen wir first_area = 50
und second_area = 350
, so dass sich result_area = 400
ergibt;
Da wir zu den Ergebnissen sind begrenzt, wo x = y
, ist das Ergebnis der Quadratwurzel des Gebietes:
float theSquareRoot = Math.Sqrt(result_area);
myResultVector.X = theSquareRoot;
myResultVector.Y = theSquareRoot;
Wie gesagt, es gibt viele andere mögliche Ergebnisvektoren. In anderen Fällen müssen Sie entweder ein bestimmtes Verhältnis definieren (zB ein Verhältnis von 1 : 4
würde Ihnen (10,40)
für das gleiche Beispiel geben), aber die Berechnung ist ein bisschen schwieriger und Sie haben erwähnt, dass Sie sich nicht um die genaue Form sowieso.
Sie könnten auch einfach einen Vektor erstellen, wo X = result_area
und Y = 1
(oder umgekehrt), ohne eine Quadratwurzel zu berechnen.
Beachten Sie, dass Sie es übertrieben haben. Die Fläche eines Objekts ist ein eindimensionaler Wert (eine Zahl); Sie drücken es jedoch mit einem zweidimensionalen Wert (einem Zahlenpaar) aus, um sie darzustellen.
Da Sie sich nicht um bestimmte X/Y-Werte kümmern, nur was ihr Produkt ist, würde ich vorschlagen, dass Sie Vektoren möglichst vermeiden, damit Sie es nicht unnötig kompliziert machen.
Das Hinzufügen eines Codebeispiels würde viel mehr Sinn machen –
Ein Bild von dem, was Sie erreichen möchten, wäre auch hilfreich. – ryeMoss
Ich habe ein Bild hochgeladen und versucht, mein Problem klarer zu erklären – Zarazas