0

私たちは皆、Processingで線を引く方法を知っています。

しかし、線を引くと、その線はすぐに表示されます。

描画プロセス、つまり線が前進するのを確認したい場合は、線全体が徐々に完成します。

これが私が実現したいことです:最終的にいくつかのパターンに変わるいくつかの線と曲線を描くこと。

では、それを実現する方法は?アレイを使用していますか?

どうもありがとう。

4

2 に答える 2

0

処理中、すべての描画はループで行われます。説明したようなアニメーションシーケンスを作成する簡単な方法は、frameCountを使用してそれを駆動することであり、モジュラス関数%を使用することはループを作成するための良い方法です。たとえば、x軸に沿ってアニメーション化するには:

void draw() {
   float x = 50;
   float y = 50;
   float lineLength = 50;
   int framesToAnimate = 60;
   line(x,y,x+float(frameCount % framesToAnimate)/framesToAnimate*lineLength, y);
}

注:フロートにキャスト/変換しないと、奇妙なことが起こります

私はこれをかなり頻繁に使用して、色などの他の機能をアニメーション化します。

fill(color(127 + sin(float(frameCount)/90)*127, 0, 0, 127));

より高度なものにしたい場合は、PVectorを使用してベクトルと座標を設定します。DanielShiffmanのサイトにはかなり良いチュートリアルがあります。

于 2012-10-04T18:37:27.290 に答える
0

フレームレートに依存せずにアニメーションを設定する場合は、代わりにmills()を使用できます。これにより、スケッチが開始されてからの現在の時刻が返されるため、指定された時間に何かが発生するように秒単位で設定できます。たとえば:

long initialTime;

void setup(){
size(400,200);
initialTime = millis();
}
void draw() {
float x = 50;
float y = 50;                              //set the multiplier to adjust speed
line(x,y,x+(millis()-initialTime)*0.01, y);           //10 px/sec
line(x,y+50,x+(millis()-initialTime)*0.05, y+50);     //50 px/sec
line(x,y+100,x+(millis()-initialTime)*0.001, y+100);  // 1 px/sec
 }

いくつかのアニメーションライブラリもあります。いくつかの印象的な結果を見てきましたが、使用したことはありません。ここにリストがあります。

于 2012-10-05T18:15:17.730 に答える