2017-08-07 27 views
0

私は、2つの位置に基づいて円を動的に作成しています。最初は中心、2番目は半径です。私はどのくらい多くのオブジェクトがサークルの周りに収まるかを決定しますint fillCount = Mathf.RoundToInt(circumference/sizeOfObject);円上のオブジェクトの均一な分布

今、私はサークルを持っています。私はどれくらいのものがそれに収まるか知っています、私は知っています半径を計算し、円上の任意の点のVector3を見つける関数を作成しました。

私が理解できないことは、各オブジェクトを均等に分散させる方法です。すなわち、「n」度ごとにオブジェクトを配置する。アーク再パラメータ化について心配する必要はないと思いますか?答えは、逆余弦/正弦を使って配置の程度を見つけることにあると思うが、私はよくわからないし、私の数学はそれほど良いものではない。

誰でも入力やアドバイスがあれば、私は大いに感謝します。

答えて

3

サークルに含まれるオブジェクトの数が分かっている場合は、360度をオブジェクトの数で割って、各オブジェクトが配置される円の角度を決定できます。円のポイントがx=r*cos(angle), y=r*sin(angle)にあることがわかっているので、Vector2を円の中心に追加できます。

例として、サークルの周りに3つのオブジェクトを配置するとします。 360/3 = 120に分割して角度を取得します。各オブジェクトは、互いに120度の角度で配置されます。
開始点を選択してください(0度を選択します)。
Vector2(r*Mathf.Deg2Rad*cos(0), r*Mathf.Deg2Rad*sin(0))
次のオブジェクトは120degになり、
Vector2(r*Mathf.Deg2Rad*cos(120), r*Mathf.Deg2Rad*sin(120))になります。
同様に、第三のオブジェクトは、
Vector2(r*Mathf.Deg2Rad*cos(240), r*Mathf.Deg2Rad*sin(240))

+0

スポットで、240degになります、迅速な答えのために非常に多くの感謝! – Tony

関連する問題