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
複合的な 3Dモデルを生成します。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 |
|---|---|---|---|---|
| ... | ブロック | 任意の処理 |
p5.Geometryオブジェクト
・do ... end ブロック内で描画されたすべての形状を含む新しい 3Dモデルを生成します。
・生成された 3Dモデルは、modelメソッドを使用して一度に描画することができます。
・時間の経過とともに変化しない複雑な形状をフレームごとに描画する必要がある場合は、
buildGeometryメソッドによってあらかじめ1つのモデルとしておくことにより、
モデル内の個々の部分をそのつど繰り返し描画するよりも高速に処理されます。