問題タブ [angular-momentum]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 角運動量伝達方程式
2つの剛体間の角運動量の伝達を計算する方法について、比較的簡単に実装できる方程式の良い参考文献はありますか?
私はこの種のものをしばらく探していましたが、問題の特にわかりやすい説明は見つかりませんでした。
正確には、この質問は次のようになります。2 つの剛体が摩擦のない (ほぼ) 表面上を移動しています。エアホッケーだと思ってください。2 つの剛体が接触し、離れます。さて、角運動量を考慮しないと、方程式は比較的単純です。問題は、物体間の角運動量の移動で何が起こるかということです。
例として、2 つの物体に角運動量がまったくないと仮定します。彼らは回転していません。それらが斜めの角度で相互作用する場合 (移動ベクトルがそれらの重心の線と一致しない)、明らかにそれらの運動量の一定量が角運動量に変換されます (つまり、それぞれが一定量のスピンを取得します)。そのような方程式は何ですか?
これはおそらく多体剛体システムを使用して計算することで解決できますが、リアルタイムで計算できるように、より最適化された計算を実行したいと考えています。プロジェクトに含めるための方程式、またはこれらの計算のオープンソース実装へのポインタに関するアイデアはありますか? 正確には、シミュレーションの単一の「ティック」内でシミュレートする必要がある相互作用の数のため、これはかなり最適化された計算である必要があります。
編集: わかりました、このトピックに関する正確な情報はあまりないようです。そして、「プログラマーのための物理学」タイプの本は、ちょっと頭がおかしいと思います。アルゴリズムのコード実装は必要ありません。アルゴリズムを理解したい (または少なくとも私のためにスケッチした)。そのようにしてのみ、ニーズに合わせて適切に最適化できます。この種のトピックに関する数学的な参考文献はありますか?
vector - 2 つのスピン ベクトルの点を使用して、球の x、y、z 座標を補間しますか?
単位球 (r = 1) の表面にある 3D ポイントをリアルタイムでプロットしたいと考えています。
ここでは 2 つのスピン ベクトルが働いています。1 つのベクトルは Y 軸を中心に回転します。その X と Z の値は、すべての Y 値が 0 に等しい X/Z 平面上に完全にある円の cos() と sin() を使用して計算されます。 X 軸。すべての X 値が 0 に等しい、Z/Y 平面上に完全にある円の cos() と sin() を使用して計算された Z と Y の値です。通常、2 つのベクトルの角運動量は同じ。ただし、ベクトルの端点は、半径が 1 に等しい共通の球の表面に沿っています。したがって、それらは同じ大きさであり、両方とも同じ 0, 0, 0 ポイントから発生します。
最初のベクトルに angXZ と呼ばれる角運動量項があり、2 番目のベクトルに angZY があるとします。つまり、いつでも angXY と angZY を使用して、スピン ベクトルごとに 1 つずつ、2 つのポイントを計算できます。これらの 2 つの 3D ポイントを使用して、同じく単位球の表面上にあり、angXZ と angZY から計算された 2 つのポイント間の正しい補間となる 3 番目のポイントを計算する式は何ですか?
単位球の表面にある任意の 2 つの 3D 点が与えられた場合、それらが両方とも円周上にある唯一の円 (平面) が存在することが頭の中でわかります。また、補間された点の座標を計算することは、計算された 2 つの点が円周を共有する円に投影されたときに、それらによって作成される角度を二等分することに帰着することも直感できます。しかし、翻訳と数学に頭を悩ませることはできません。
単位球の表面上にある 2 つの 3D 点を取り、その表面上にあり、最初の 2 点間の正しい補間となる 3 番目の点を計算する簡単な式はありますか?
問題がある場合は、Delphi Pro 6 を使用しています。
フォローアップ: スピン ベクトルのペアから計算された 2 つの点の線形中点を取得し、その点を単位球に投影することができるはずだと直感的に思われます。たとえば、以下のリンクにある式は、任意の 2 つの 3D 点の間の中点を計算する式を示しています。次に、その 3D ポイントを取得し、いくつかの式を使用して、単位球の表面に投影するように XYZ 座標を調整できませんか?
objective-c - 目標 C: ユーザーの指からのカメラ スワイプ
私の質問は、ユーザーがすばやくスワイプした場合に、画面のスワイプの勢いを維持してスクロールを維持するために、どのアルゴリズムまたは数学を使用する必要があるかということです。
例: 画面上に円を描いて回転する画像があり、ユーザーがカメラをゆっくりスワイプすると、指に沿って移動します。ただし、ユーザーが非常に速くそれを行う場合、ユーザーがスワイプする速度に応じて、画像はカルーセルのように数秒間回転する必要がありますか?
ユーザーが画面に触れたときのポイントと、ユーザーがスワイプを続けて指を離したポイントを取得できますか?
1秒間に60回呼び出されるメソッドがあるので、アイデアはありますか?
iphone - iPhoneホイール(運命の)回転の勢い
スピニングホイールに勢いをつけるのに苦労しています。
私はこのホイール(このようなもの)を持っており、シングルタッチイベントを使用してホイールを中心の周りで回転させています。
ここでは問題ありませんが、タッチ(ドラッグ)が終了したとき。ホイールの勢いを維持し、動きを楽にしてほしい。
私にいくつかの指針を与えることができる人は誰でも、それは必ずしもObjective-cである必要はありません。AS3、javascript、またはJAVAでも十分です。
* UPDATE(ホイールを回転させるためのコード)*
rotation - 2つのクォータニオンとタイムステップから運動量クォータニオンを取得する
オブジェクトの回転を保持するクォータニオンがあります。フレーム中にそれを変更して、新しいクォータニオンを取得します。「前のフレーム」から「現在のフレーム」に回転するクォータニオンを計算できます。
ただし、このクォータニオンを「tで除算」して、必要な1秒あたりの回転数を取得する方法がわかりません。
つまり、タイムステップに基づいて、クォータニオンがX回(つまり、28.5 fpsで28.5回など)適用された場合にどのように見えるかを知る必要があります。
誰かがこれを行う方法を知っていますか?それとも、オイラーに変換し、乗算してから、元に戻すのと同じようなことをするようにアドバイスしていただけますか?
2d - 2D 物理で力を加えるときの慣性力の問題
私は非常に単純な 2D 物理関数を作成して、球粒子をコライダーとして使用して RigidBody を解決しようとしています。
私はそうリジッドボディとパーティクルクラスを持っています:
基本的に、各フレームで各リジッドボディに保存されている各パーティクルの新しい位置を計算し、次にパーティクル間の衝突をチェックし、衝突の場合は、それらを反発させる力を計算します (半径と内部の量に基づいて)それら)、次にこの力を粒子に保存します。
そして、rigidBody に含まれるすべてのパーティクルのすべての力ストアに対して、rigidBody にインパルスを追加することにより、LinearVelocity と AngularVelocity を計算します。
my function addImpulse (インパルスを使用して力を粒子に保存し、粒子のワールド pos を配置します):
私の問題は、この関数が linearVelocity に対して非常にうまく機能することです。これは、角速度が最も小さな衝突で非常に大きくなるように調整されているためです。今のところ、ダンピング (線形または角度) を使用していません。 angularVelocity の慣性、
慣性のミスが私の問題だと思いますが、インターネットでそれを計算する方法を見ると少し混乱します。
box2d を調べて、慣性が格納されていて、rigidBody の変数 (質量として) であることを確認します。インターネットで、慣性 = 質量 * (r*r)
問題 => r とは...
-if は重心の距離 (つまり、rigidBody の位置) であり、明らかに常に 0 に等しい (body.position - body.position == 0 )
box2d で見つけた: this.m_I = massData.I - this.m_mass * (massData.center.x * massData.center.x + massData.center.y * massData.center.y); そして、massData.center seam は、rigidBody からの形状の中心になります。私の場合の問題は、私の形状が (0,10) と (0,-10) の 2 つの球体であるため、その中心は (0 ,0) ....
別のウェブサイトで次のことがわかりました: for(i < numberOfParticle) I += ( massOfParticle(i) * ( RelativePosOfParticle(i)*RelativePosOfParticle(i) )最初に中心を検索する代わりに)、私の I は 0 よりも大きくなります。しかし、使用する正しい式はわかりません...
誰かが簡単な方法で私を説明できる場合、慣性を計算する方法は? RigidBody の慣性を直接 (粒子ではなく) 計算できる場合は? 慣性を保存できる場合、またはインパルスをどこに適用するかが深まる場合(他のウェブサイトでも読みました...)?および/または、なぜこのような大きな角速度を得るために衝動の関数で間違ったことをすることができるのですか (おそらく正常であり、この問題を解決するダンピングは他の物理エンジンです)。
また、誰かが(好奇心だけで)答えることができれば、計算が速く、結果が十分に良いため、box2dは慣性の単純なバージョンを使用しますか?それとも、Box2d の計算は正しく、コードを読むと何かが抜けているのでしょうか?
どうもありがとう^^,
マリウス。
javascript - Javascriptモーメントは日付範囲API内にあります
現在http://momentjs.com/を使用しています
日付の配列が1日以内に収まるかどうかを調べるために、以下のように使用できる関数はありますか?
例:
momentjs が 2014 年 12 月 24 日以内のすべてのイベントを返すようにしたい
だから返すべき
以下で試してみましたが、うまくいきませんでした