2017-02-02 7 views
0

私はHTMLキャンバスを使って、Euler Forwardメソッドを使って微分方程式をモデル化しています。私はので、私は2回目の反復のためにバック関数にそれらを供給し、再度のためにできるjavascriptから値を受け取るsetInterval関数?

<script> 
function step(theta,v) { 
    //calculate values of theta and v 
    //output result 
    return theta,v; 
} 

setInterval(step,0.001); 
</script> 

を次のように私のコードがあるとして、私は、出力Vとシータに機能をしたいしかし、関数を呼び出すためにはJavaScriptのsetIntervalを使用しています3回目の繰り返しと同様です。だから、どのように定期的に関数を呼び出すことができ、関数の出力を受け取ることができますか?

答えて

1

あなたは、次のようなものを探しています:

let currentParams ={v: 1, theta: 5}; 

function step(v, theta) { 
    return {v: v + theta, theta: v-theta }; // just an example of operation that should be done 
} 

setInterval(() => { 
    currentParams= step(currentParams.v , currentParams.theta); 
}, 1); 
  • データ構造として、オブジェクトリテラルの使用の両方vΘ(シータ)を収集します。

    ↪{V:<initialValue>、「Θ」:<initialValue>}

  • たsetIntervalで、stepの入力はリテラルオブジェクトと出力が再度割り当てられる同じ構造でなければならないことであろう。

+0

'setInterval'を停止するために' clearInterval'を使用してください。 –

関連する問題