2017-12-06 65 views
0

私は2つの領域を持っていますが、どちらもbounds.sizeで与えられています。今は2Dで作業しているので、z軸は私のために重要ではありません。私はこれらのベクトルを追加したいので、私は結合された領域を表すベクトルを持っています。これらのベクトルを単純に加算するだけでは正常に動作しません。エリアが最終的にどのように見えるかは重要ではなく、サイズが同じであることが重要です。両方のエリアが組み合わされています。Unity/C#2つのベクトルで表される2つの領域を追加する

編集:私は2 polygoncollidersのbounds.sizeを持っていると私は

を組み合わせ

enter image description here

エリア1とエリア2組み合わせた2 polygoncollidersのbounds.sizeを表す値を取得したいです

+1

いくつかのコード例を追加すると、より多くの感覚が得られます –

+0

あなたが達成しようとしているものの画像も参考になります。 – ryeMoss

+0

私は写真をアップロードし、より明確に私の問題を説明しようとしました – Zarazas

答えて

2

最終的にエリアがどのように見えるかは重要ではなく、そのサイズは両方のエリアを組み合わせたものと同じであることが重要です。近付い無限の可能性がそうでない場合とがある

、私はあなたが(0.5,80000)ではなく、よりバランスのとれた(200,200)のような愚かなベクトルで終わらない単純な理由で、x = y結果に自分自身を制限するつもりです。面積を計算

float result_area = first_area + second_area; 

簡単です:あなたは代数的にそれを見たときに

は、これはすべてのことは難しいことではありません

float area = myVector.X * myVector.Y; 

このようにも簡単面積の合計をレンダリング:

float result_area = myFirstVector.X * myFirstVector.Y + mySecondVector.X * mySecondVector.Y; 

たとえば、first_area = 50ととしましょうとなり、結果としてresult_area = 400となる。

float theSquareRoot = Math.Sqrt(result_area); 
myResultVector.X = theSquareRoot; 
myResultVector.Y = theSquareRoot; 

私が言ったように、他の多くの可能な結果のベクトルがあります。

は、我々は結果x = yに限定されているので、結果は平方根エリアのです。他のケースでは、与えられた比率を定義する必要があります(たとえば、1 : 4の割合は同じ例では(10,40)となります)。しかし、計算が少し難しくなります。とにかく正確な形。

平方根を計算することなく、X = result_areaY = 1(またはその逆)のベクトルを作ることもできます。


あなたはそれを強調したことに注意してください。オブジェクトの面積は一次元の値(数値)です。 2次元値(数字の組)を使って表現しています。
特定のX/Y値については気にしないので、可能な限りベクトルを避けることをお勧めしますので、不必要に複雑にしないでください。

+0

ありがとう、私は本当に問題をより複雑にしています。 – Zarazas

関連する問題