私はArduinoを持っており、配列内のピクセルをアニメーション化する最も効率的な方法を見つけようとしています。配列は、30 uint8_t
の3つの配列で表されます。 (30ピクセル* R + G + Bレベル0〜255)。配列へのアニメーション
ピクセルをアレイの下側に独立して移動する最も良い方法は何ですか?これはメモリが限られた環境(2 KB RAM)で、アレイは720バイトを占有します。私はもともと各ピクセルに配列を使用しようとしていて、メモリが不足していました。 2番目の実装では、if文を使用していますが、うまくいきますが、新しいパターンを作成するのは非常に面倒です。私は今解決している方法よりも良いかもしれない問題を解決する方法を探しています。
ここに私がアニメーション化したいパターンの例があります。
X moves forward 1 each cycle.
Y moves forward 3 places then back 2.
Z moves backwards 3 places each cycle.
|_|X|_|_|_|_|_|_|_|_|_|_|_|_|Y|_|_|_|_|_|_|_|_|_|_|_|_|_|_|Z|
|_|_|X|_|_|_|_|_|_|_|_|_|_|_|_|_|_|Y|_|_|_|_|_|_|_|_|Z|_|_|_|
|_|_|_|X|_|_|_|_|_|_|_|_|_|_|_|Y|_|_|_|_|_|_|_|Z|_|_|_|_|_|_|
次に、私が使用するコードを示します。
void animateScene1() {
for(int i = 0; i <= numPixels; i++) {
setColor(i, X);
if(i < 15) {
if(i % 2 == 0)
setColor((i+15)+3), Y);
else
setColor((i+15)-2), Y);
}
if(i < 10)
setColor(numPixels-3*i, Z);
}
}
いい方法がありますか?
わかりません。汎用コードで特定のアニメーションを実行しますか? –
正確に。したがって、特定のアニメーションをコーディングする関数を作成するのではなく、Xが大きさ1のベクトルであり、Zが大きさ-3のベクトルであり、追加のパターンの作成を簡略化できると言うことができる場合は – KyleWpppd
できますアニメーションに使用したいパラメータのリスト(サイクルあたりのステップ数、停止前のサイクル数、方向など)を照合し、それらを1つずつ実装することをお勧めします。次に、アニメーションをパラメータのリストとして指定することができます。 –