3

これは、JavaScript で作業しているアトム アニメーションの静的フレームで、この画像をモデルにしています。

ここに画像の説明を入力

時間に基づいて軌道上の電子の位置を決定するために使用されるコードは次のとおりです。

// Get position along elliptical path.
var x = Math.cos( this.timer.delta() * this.speed ) * ( this.pathWidth / 2 );
var y = Math.sin( this.timer.delta() * this.speed ) * ( this.pathHeight / 2 );

私がやりたいのは、パスのオレンジ色の部分では核のに電子を配置し、緑色のセグメントでは核の下に電子を配置することです。

のときthis.timer.delta() == 0、電子は右端にあり、反時計回りに進みます。

以下の2点についてご相談をお待ちしております。

1) 電子がその軌道の左端にある時点を見つける。

2) 任意の時点で、電子が現在経路のどちらの半分を通過しているかを判断する。

理想的には、ソリューションはthis.speed(アニメーションを高速化または低速化するための乗数) の値に関係なく機能する必要があります。

4

1 に答える 1

4

それはすべて角度に依存します - そして角度はあなたの表現のこの部分です:

this.timer.delta() * this.speed

したがって、角度が 0 と PI の間にあるかどうかを簡単に判断できます。そうであれば、核は「前」にあります。

もちろん、y が負でないかどうかをチェックするだけでも同じことができます。

于 2012-10-15T09:31:46.757 に答える