sphrand

指定された球または楕円体の内部にあるランダムなベクトルを返します。楕円体は球を X、Y、Z 軸に沿ってスケールしたものです。

vector sphrand(float radius)

vector sphrand(vector vector)

radius は、返されるベクトルが存在する球の半径です。

vector は、楕円体の X、Y、Z 軸方向の半径です。

この関数から返される乱数を制御する方法については、seed を参照してください。

例 1

sphrand(1)

ベクトルを返します。このベクトルでランダムに選択された座標は、原点上にある半径 1 の想像上の球内に存在します。たとえば、<<0.444, -0.427, 0.764>> というベクトルが返されます。

例 2

sphrand(<<2,1,1>>)

中心が原点にあり、X 軸方向の半径が 2、Y 軸方向の半径が 1、Z 軸方向の半径が 1 である楕円体の内部にあるランダムな座標を各要素とするベクトルを返します。

sphrand 関数を使用して、たとえば、X 軸(X-Axis)方向の半径が 2、Y 軸(Y-Axis)方向の半径が 1、Z 軸(Z-Axis)方向の半径が 1 である楕円体の内部にランダムに分散した 500 個のパーティクルからなるクラスタを作成することができます。

パーティクル楕円体を作成するには:

  1. nParticle > nParticle ツール(nParticles > nParticle Tool) > を選択します。
  2. パーティクル数(Number of Particles)に 500 を入力し、最大半径(Maximum Radius)に 1 を入力します。
  3. ワークスペース内の任意の場所をマウスでクリックし、パーティクルを配置します。
  4. エクスプレッション エディタ(Expression Editor)内でパーティクルのシェイプ ノードを選択します。
  5. 作成時(Creation)オプションをオンにします。
  6. 次のエクスプレッションを入力します。
    position = sphrand(<<2,1,1>>);
    

    このエクスプレッションはパーティクルごとに 1 回ずつ実行されます。各パーティクルは、<<2,1,1>> で指定される楕円体の内部のランダムな位置に分散します。