buildGeometry

(別名: build_geometry)

def setup 
  createCanvas(100, 100, WEBGL)
  button = createButton('New')
  button.mousePressed do
    makeParticles
  end
  makeParticles
end

def makeParticles 
  freeGeometry(@particles) if @particles

  @particles = buildGeometry do
    60.times do
      push do
        x = randomGaussian(0, 20)
        y = randomGaussian(0, 20)
        z = randomGaussian(0, 20)
        translate(x, y, z)
        sphere(5)
      end
    end
  end
end

def draw 
  background(255)
  noStroke
  lights
  orbitControl
  model(@particles)
end

p5.jsリファレンス(参考情報)

[p5.js] buildGeometry

概要

複合的な 3Dモデルを生成します。

書式

buildGeometry do ... end

引数

引数名内容備考オプションデフォルト値
...ブロック任意の処理

戻値

p5.Geometryオブジェクト

備考

・do ... end ブロック内で描画されたすべての形状を含む新しい 3Dモデルを生成します。

・生成された 3Dモデルは、modelメソッドを使用して一度に描画することができます。

・時間の経過とともに変化しない複雑な形状をフレームごとに描画する必要がある場合は、
 buildGeometryメソッドによってあらかじめ1つのモデルとしておくことにより、
 モデル内の個々の部分をそのつど繰り返し描画するよりも高速に処理されます。

関連

model
freeGeometry