2024/11/03(日) [n年前の日記]
#1 [proce55ing][processing] 木の葉サワサワプログラムを少し修正
先日、木の葉がサワサワするプログラムをProcessingで書いてみたけど。
_Processingで木の葉サワサワ処理を書いてみた - mieki256's diary
課題として挙げていたアレコレを追加してみた。
_mieki256/sketch_draw_leaves: Processing (Proce55ing) sample. Draw and animate leaves.
_Processingで木の葉サワサワ処理を書いてみた - mieki256's diary
課題として挙げていたアレコレを追加してみた。
_mieki256/sketch_draw_leaves: Processing (Proce55ing) sample. Draw and animate leaves.
- Zキー押しっぱなしで Undo。
- 葉を発生させる領域を円で表示。
- 配置する葉っぱ画像の色合いをHSB指定で変更して固定できる機能を追加。Hキーでモードが切り替わる。
- 下絵画像も読み込んで表示するようにした。連番画像として保存する際は、下絵は無視される。
◎ tint()の動作確認 :
tint() を使うことで、画像の色合いを変更しながら描画することができるのだけど、どのパラメータがどう反映されるのかよく分からない…。
colorMode(HSB, 360.0, 100.0, 100.0); を記述することで以下の範囲の値が指定できるようなるけれど。
一応テスト用のプログラムを書いてみけど…。よく分からない…。
_sketch_tint_test.pde
使用画像は以下。.pde と同じ階層に data/ を作成して、その中に入れる。
_leaf.png
動作時の見た目は以下。
colorMode(HSB, 360.0, 100.0, 100.0); を記述することで以下の範囲の値が指定できるようなるけれど。
- Hue(色相) を 0.0 - 360.0
- Saturation(彩度) を 0.0 - 100.0
- Brightness(明度) を 0.0 - 100.0
一応テスト用のプログラムを書いてみけど…。よく分からない…。
_sketch_tint_test.pde
// tint() test. import controlP5.*; PImage img; float scrw, scrh; ControlP5 cp5; Slider slider_hsb_h; Slider slider_hsb_s; Slider slider_hsb_b; void setup() { size(512, 512, P2D); scrw = width; scrh = height; img = loadImage("leaf.png"); // init ControlP5 (GUI library) cp5 = new ControlP5(this); PFont myfont = createFont("Arial", 14, true); ControlFont cf1 = new ControlFont(myfont, 14); float x = 20; float y = 20; float yd = 40; slider_hsb_h = cp5.addSlider("hue") .setRange(0.0, 360.0) .setValue(180.0) .setPosition(x, y + 0 * yd) .setSize(180, 20) .setColorForeground(color(0, 160, 0)) .setColorActive(color(0, 200, 0)) .setFont(cf1); slider_hsb_s = cp5.addSlider("saturation") .setRange(0.0, 100.0) .setValue(100.0) .setPosition(x, y + 1 * yd) .setSize(180, 20) .setColorForeground(color(0, 160, 0)) .setColorActive(color(0, 200, 0)) .setFont(cf1); slider_hsb_b = cp5.addSlider("brightness") .setRange(0.0, 100.0) .setValue(100.0) .setPosition(x, y + 2 * yd) .setSize(180, 20) .setColorForeground(color(0, 160, 0)) .setColorActive(color(0, 200, 0)) .setFont(cf1); } void draw() { noTint(); colorMode(RGB, 255, 255, 255); background(color(40, 80, 160)); imageMode(CENTER); colorMode(HSB, 360, 100, 100); float h = slider_hsb_h.getValue(); float s = slider_hsb_s.getValue(); float b = slider_hsb_b.getValue(); tint(h, s, b); image(img, scrw / 2, scrh / 2); colorMode(RGB, 255, 255, 255); noTint(); }
使用画像は以下。.pde と同じ階層に data/ を作成して、その中に入れる。
_leaf.png
動作時の見た目は以下。
[ ツッコむ ]
以上です。