トップページgamedev
981コメント311KB

ゲームのための物理(力学)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/04/08 17:38ID:dlksSYkA
ゲームに必要な物理(力学)を語るスレッド。

例えば、坂道を転がる球の加速度だったら。

その球の密度が一様ならば、慣性モーメントは(2/5)MR^2なので

dV/dt = 5*g*sinθ/7;

と表せるよとか。

他にも剛体運動、力積とか語ってください。
0128名前は開発中のものです。02/04/14 15:40ID:J0CwLCts
>>126
あげ。
慣性モーメントは質力×半径(質点)だから、物体を細かく分けて考えればよい。
中心点から質点の距離(半径)は三平方の定理で求められるよね。
0129名前は開発中のものです。02/04/14 15:52ID:J0CwLCts
>>127
3角形と円の当たり判定は、3角形の3頂点と円の当たり判定(3平方の定理)
を判定して、当たってなかったら線分と円の当たり判定をすればよいと思う。

ちなみに線分と円の当たり判定は、円の中点Pにもっとも近い直線上の点H
を求めて、その2点を3平方の定理にぶち込めばOK。

もっと簡単な方法があるかもしれないから幾何に詳しい人補足プリーズ。
013012902/04/14 15:58ID:J0CwLCts
あ、ごめん。よく読んだらその方法でダメなのか・・・

じゃあ、法線ベクトルを求めて、3角形と点の内外判定をすれば?
もちろん、3角形は円の半径分大きくしてね。
0131名前は開発中のものです。02/04/14 16:59ID:???
全部四角形で当たり判定するとか・・・
0132名前は開発中のものです。02/04/14 17:51ID:YJV4FsYY
>>127
禿同あげ
0133名前は開発中のものです。02/04/14 18:54ID:???
一流のゲーム会社での新卒に必要な技能とは、1に数学、2に物理、3に英語だそうです。
一流企業の就職筆記試験にでるのは、この3つだからね。
0134名前は開発中のものです。02/04/14 19:15ID:???
>>127
線と点の距離、面と点の距離で判定をするんじゃだめなの?
高校二年の教科書に載ってるよ。
0135名前は開発中のものです。02/04/14 19:37ID:???
>>127
if(面と球の中心の距離<=球の半径){
if(垂線の足が三角形に含まれる) return true;
}
for(i=0;i<3;i++){
if(辺と球の中心の距離<=球の半径){
if(垂線の足が線分に含まれる) return true;
}
}
for(i=0;i<3;i++){
if(頂点と球の中心の距離<=球の半径) return true;
}
return false;

その条件で、接触判定する(真偽を得る)だけならこれで良さげ
"変な判定"が何なのか謎
0136名前は開発中のものです。02/04/14 19:40ID:???
うへ、インデント消えてる
2ch初心者なの丸出しじゃん!
013712702/04/14 20:05ID:???
>>135
ソースまで出してもらって感謝です。
こちらの実装も、処理の流れは>>135とほぼ同じです。
接触判定の真偽値自体には問題はないです。

問題なのは、その後の計算のために法線を取り出すのですが、辺と頂点に
当たったときには接触点から球の中心に向かうベクトルを法線としています。

三角形1枚ならそれで問題ないのですが、2枚以上並べたときの継ぎ目で
球がわずかでも面にめり込んでいるときには、もう1枚の三角形の辺に
斜めから当たったとみなされる場合があります。

三角形の継ぎ目を低速で転がって通過しようとしたときに稀に発生します。
計算の都合で面へのめり込みを許容しているので、このような場合の良い
回避方法が思いつかないです。

言葉足らずで失礼しました。
0138名前は開発中のものです。02/04/14 20:24ID:???
>>137
角と円と法線のことをもう一度よく考えてから発言してみてください。
つーかアホか?
013913502/04/14 21:06ID:???
面へのめり込みを許容してどうする?って気もしますが

135のやり方は、球・三角形ともに停止していて、
その後の補正を考えない場合にしか使えません
球が移動しているなら、移動前の球→移動後の球をカバーするような
カプセルで考えないと破綻するはず
0140名前は開発中のものです。02/04/14 21:16ID:???
>>137

とりあえずなんでもいいから適当な図でも描いてくれれば
コメントしやすいと思うが。AAでもいいし、画像なら
その辺のあぷろだに うpしてリンク貼るとかさ。
0141名前は開発中のものです。02/04/14 21:37ID:???
補正しないのもドキュソだが法線を取れないのもドキュソだな。
線分と円の中心の距離が円の半径よりも小さくなったらそれは接触しているということだろ?
その法線は線分に直角な円の中心点を通る線だろ?
これ二次元ならば中学生の数学。
014212702/04/14 21:57ID:???
アホな質問ですみません。

>>139
単純に、めり込んだ量に比例して押しかえすやり方で跳ねかえりを計算してるので
そのような処理になっています。

>>138から判断すると、
球が辺に接触していると判断されたときにどの方向に跳ね返せば良いのか、
を間違っているか、そもそもめり込みを許容していること自体が問題である、
という事でしょうか?

複数のポリゴンに同時に当たった時に、逐次、見つかった順に計算しているのも
問題かもしれないですが。
剛体の計算自体は本を見ればいくらでも資料がありますが、接触判定のアルゴリズムに
なるといい資料が少なく、試行錯誤中です。
014312702/04/14 22:09ID:???
>>141
>線分と円の中心の距離が円の半径よりも小さくなったらそれは接触しているということだろ?
>その法線は線分に直角な円の中心点を通る線だろ?

137の「接触点」という言い方がまずかったのかもしれませんが、
「接触点から球の中心に向かうベクトル」が線分と直行しているので
その点については間違っていないかと。

とりあえず、三角形1枚との当たりに関しては、問題なく動いています。
2枚が隣接していても、実用上問題ないレベルで、大抵の場合は上手く動いています。

ただ、もっと良いやり方があるなら知りたい、と。
0144名前は開発中のものです。02/04/14 22:12ID:???
>めり込んだ量に比例して押しかえすやり方で跳ねかえりを計算してる
物理の授業で一番最初にやるはねかえり使ってやった方が簡単だし確実。
0145名前は開発中のものです。02/04/14 22:15ID:???
>>143
もっと良いやり方→補正
0146名前は開発中のものです。02/04/14 23:11ID:???
>>143
どんな処理するために3角形使ってるかわからないんだけどさ。
3角形を隣接させるってどういうこと?
本当に3角形でいいの?本当は凸角形の当たり判定でいいんでなくて?
014713502/04/14 23:31ID:???
私も数年前、かなり悩みました
平行移動・回転する任意形状の剛体が多数ぶつかり合うケースまで考えると、
すごく重いので、いまだに試行錯誤中って事になります(w

辺との判定をoffにしたら、その坂のポリゴンの継ぎ目で、
・すり抜けることがある→「交点が三角形に含まれるか否か」で判定ミス
・問題無い→誤差のせい
と予想
014813502/04/14 23:42ID:???
移動後の状態だけで考えるなら、交点じゃなくて最短(近?)点ですね
0149名前は開発中のものです。02/04/14 23:47ID:???
補正してから面を優先にして判定してやるだけじゃん。
なんでそれを思いつかないんだろうか?
0150名前は開発中のものです。02/04/14 23:56ID:YJV4FsYY
>物理の授業で一番最初にやるはねかえり使ってやった方が簡単だし確実。
127は剛体とか言ってるので跳ね返りでやるといろいろ問題多いよ
単純にペナルティ法使ったほうが楽なこともある
015115002/04/15 00:06ID:???
>>137
あと根本的な解決じゃないかもしれませんが,
面ごとに辺との当たりをとらずに,
当たり判定用に辺データを持っていれば済むような・・・
0152名前は開発中のものです。 02/04/15 00:08ID:???
>>151
サイコロを転がすならいいが
棒とか面につきさすような感じでぶつかって来たらどうする?
015312702/04/15 00:09ID:???
当たり前といえば当たり前のことなんですが、論文などを参考にして
厳密にやろうとすればするほど重くなって実用的でなくなるので、
どこでバランスを取るかを考慮中です。

とりあえずめり込みを前提にするのが間違っている、というのと
凸多角形で判定すればいい、とのアドバイス感謝です。

>>めり込んだ量に比例して押しかえすやり方で跳ねかえりを計算してる
>物理の授業で一番最初にやるはねかえり使ってやった方が簡単だし確実。

最初は物理の本に載っているような跳ねかえりの式を使っていたんですが、
重力などで物体がじわじわめり込んでしまうのを補正するのと、多数の
移動する剛体同士の当たりをとる過程でペナルティ法の方が簡潔に処理
できるようだったので、今はそちらを使っています。

めり込みの大きさと方向だけわかれば後はそれぞれの物体に力を加えるだけで
計算できるので、あまり厳密でなくとも良いゲーム向けには便利ではないかと
判断しました。
跳ねかえり定数を自由に決め難いのが難点ですが。
0154名前は開発中のものです。02/04/15 00:11ID:???
>>152
「辺だけ」ではなくて,「辺の当たり判定用にデータを」という意味です

「同じ辺で2度当たってどうのこうの」って問題に見えましたので・・・
015515002/04/15 00:15ID:???
>>153
ペナルティ法って実際どのように実装してますか?
単純に
 F = 深さ * k - 相対速度 * e
こうするとバネと同じで発散しやすくないですか?
ちょっと教えて下され
015615302/04/15 21:53ID:???
>>155
素直にその式で実装しています。発散しやすいです。
とりあえずはeを大きめの値にして誤魔化しています。

現実でも跳ね返り係数が大きいものはあまりないので
まぁいいか、と。
そのへんはかなり適当です。ダメだなぁ・・・

こういうのを簡単に上手く処理する方法ってないものですかね?
物体数が多いといろいろ面倒。
015715002/04/16 01:19ID:???
>>156
レスどうもです
最低数回は埋まり状態にないと保存しませんから
ルンゲクッタで精度あげたり・・・(やったことありませんが)

基本は跳ね返りで,埋まりにだけペナルティ法とか
だんだん重くなって行く〜
0158名前は開発中のものです。02/04/18 06:18ID:???
えっと、埋まった分を戻す時、他の物体も戻してる?
ほら、現実世界では埋まらないでしょ?
だから、埋まる前の衝突瞬間を求めて、世界時間をそこまで
逆戻ししなければならないんじゃないかなぁーなんて思うわけ。
015915002/04/18 17:56ID:???
>>158
私はそこまでしてません
接触状態では時間が進まないですね
となると場合分け(接触状態かどうか)が必要になるかな?
016015302/04/18 20:06ID:???
こちらでもゲーム向けなのでそこまでの厳密さはいらないと判断してます。

必要以上にめり込まない、壁を突き抜けない、運動が発散しない、の3つが
成り立ってそれっぽく動けば、後はどれだけ処理を軽くできるかが勝負かと。

ところでペナルティ法ではない跳ねかえりの式で、多物体の積み重ねってどの
ような処理で行っていますか?
めり込んだ距離や移動量、質量などに応じて押し返したり速度を減衰したりなど試しては
みたのですが、じわじわとめり込んでいくのを上手く回避できませんでした。

なにか良い方法はないものでしょうか?
0161名前は開発中のものです。02/04/22 15:32ID:qrK3TQcc
>30

>ところで連立方程式の解法には何を使いますか?
>消去法,ヤコビ,SOR,ADI,CGなどなど

それぞれの手法について説明お願いできます?
0162名前は開発中のものです。02/04/22 22:18ID:???
>>153さんのやり方は埋まったら埋まった量に応じて反発させるってことですか?
もしそうなら、高速で移動しすぎて突き抜けちゃうこともある?
016313502/04/22 23:43ID:???
ペナルティ法の定義は良く知らないけど、自分がそれっぽい方法使ってた時は
めり込みの深さは速度に影響を与えず、フレーム内で100%押し戻してました

前のフレームで衝突寸前な場合に激しく跳ね返るっていう、見た目の不自然さを
解消できそうになかったし、めり込みを後のフレームに持ち越してると
最終的に埋まっちゃったり、すり抜けたりする危険があるので
0164名前は開発中のものです。02/04/23 00:35ID:???
>>163
たぶん、127がやってる方法でその問題は発生していないんじゃないかな。
速すぎるとツキぬけるかもしれないけど。


ちなみに、自分は衝突判定ベースの当たり判定を試みたことがあったんだけど、
floatだと精度的にキツいものがあった。原点付近と原点と離れたところでは
有効桁の違いで計算結果に影響が出て、完璧に保証するのは難しいと
感じた。ちなみに、前提条件として、衝突する物体は判定を行う対象と
重なっていないこと、というのがあったからなんだけどね。
(固定小数点で判定するばイケそうな気もした)

ラインなんかに対して限りなく平行に近い状態で衝突しようとした時は、
かなり悲惨だったような。

安定した動作を期待するなら、127が良いと思うよ。
もしくは状況によって使い分けることが必要だろうね。

オマエのコーディングがへぼいんじゃ?という人が居たらご教授ください。
0165名前は開発中のものです。02/04/23 04:15ID:3ABxQxw2
>>30

連立方程式ならガウス法で充分でしょ。
32が言うように行列にしてLU分解してピボット処理すればいいし。
0166名前は開発中のものです。02/04/23 08:44ID:???
>165
LU分解とガウス法は全く違う手法ですが。
0167名前は開発中のものです。02/04/23 09:32ID:???
ヤコビ,SOR
http://dpos1.ice.eng.hokudai.ac.jp/~yasui/JAVA/SOR_APPLET-1.00/Doc.jp/sor_applet/node6.html

ガウス,LU分解
http://goro.denshi.numazu-ct.ac.jp/~ushimaru/pdf/simulation.pdf

CG
http://www.etl.go.jp/~tatebe/research/la/present/cg/sld001.htm
ワケワカラン
016816702/04/23 09:43ID:???
ちなみにCGは対称行列のみ
有限回数の反復で厳密解に達するらしいです
0169名前は開発中のものです。02/04/23 14:37ID:3ABxQxw2
>>166
名著「C言語による最新アルゴリズム事典」奥村晴彦著を読みましょう。
係数が0に近づくと、ガウス法では解けないので、LU分解してピボット処理を
行うのです。
0170名前は開発中のものです。02/04/23 15:07ID:???
>169
それが何か?
0171名前は開発中のものです。02/04/23 15:48ID:???
>>170
それが何か?
0172名前は開発中のものです。02/04/23 15:52ID:???
>>165-166 >>169-171
     ___
    /     \     ________
   /   ∧ ∧ \  /
  |     ・ ・   | < おめーらレベル低すぎ
  |     )●(  |  \________
  \     ー   ノ
    \____/

Gaussの消去法とLU分解は実質的にまったく同等だっつーの
枢軸選択はGaussの消去法でも使えるっつーの
0173とおりすがり02/04/23 15:59ID:???
ふむ、そうなると、なんでアルゴリズム名が違うのかが謎ですな。
0174名前は開発中のものです。02/04/23 16:14ID:???
「実質的に同じ」って何が言いたいんだかわからん。
必要な計算量が全然違うだろうが。
0175名前は開発中のものです。02/04/23 16:24ID:???
LU分解はGauss法の冗長な処理を削って洗練させただけ。
「全然」というほどは計算量は違わないぞ。
0176とおりすがり02/04/23 16:43ID:???
そうだな。計算量は3倍しか違わないですな。
対称行列なら6倍しか違わないですな。
0177名前は開発中のものです。02/04/23 18:57ID:qP26dnQc
小行列に分解する方法はなんて呼ばれてるの?
大きな行列をどんどん小さくしていって解くやつ。
0178名前は開発中のものです。02/04/23 19:54ID:???
余因子
0179名前は開発中のものです。02/04/23 23:06ID:???
>>177
行列式の展開?
0180名前は開発中のものです。02/04/23 23:12ID:jfgo05Hk
>177
そうそう。
機械的かつ簡単なんで、自分はこれでやっちゃってるけど、さすがに重そう。
これよりもちょっと効率が良くて、かつ、さほど難しくないのってどれかなぁ。
0181名前は開発中のものです。02/04/24 18:36ID:K0E1j0mI
厨房ですいません、ペナルティ法ってなんですか?
ネットで検索かけたんですけど、どのようにゲームに適用するのかわかりません。
どこか詳しく解説しているHPとかあったら教えてください。
0182名前は開発中のものです。02/04/24 22:02ID:xCbWm4T.
>181

物体がほかの物体にめり込んだときに
めり込んだ量に比例して反力を発生させてめり込みを防止する
って方法じゃなかったっけ?

撃力の計算とはまた別次元で、あくまでめり込み防止策だと思ってたんだけど
どうなんでしょうかね・・・?
0183名前は開発中のものです。02/04/24 23:07ID:???
KanoたんのRigidBodyはペナルティ法だね
0184名前は開発中のものです。02/04/25 16:25ID:QMcCq9m6
ペナルティ法は、kanoさんのBBSで解説されています。
物体を固いバネとして、フックの法則で処理してるらしい。
検索エンジンで「kano」「ペナルティ法」で検索してみて。
0185名前は開発中のものです。02/04/25 18:57ID:OIDKWVBY
ペナルティ法=めり込んだらバネで跳ね飛ばす法
0186名前は開発中のものです。02/04/28 08:57ID:???
対称行列の対角化ってどうするの?
もちろん計算機にやらせる方法なんだけど。
0187名前は開発中のものです。02/04/28 11:09ID:???
>>186
計算機がやるのと人がやるのを区別している時点でダメかも
018818602/04/28 23:28ID:???
>>187
私の言葉が悪かったですね。
逆行列を求めるときのクラーメルの公式のように、
一定の処理で答えを得る方法があれば知りたかったのです。
手順を不定数繰り返すような方法ではなくて。
そんな方法はない、ととってよいでしょうか?
0189名前は開発中のものです。02/04/30 02:51ID:usumw5wg
ムーア・ペンローズの一般化逆行列ってどう?
0190 02/05/01 22:02ID:hP64kl/k
フェルマーの最終定理の証明もできないやつがゲーム業界くるなよ。
このまえなんかテーラー展開すら知らないドキュソが来た。
0191名前は開発中のものです。02/05/01 22:08ID:???
テイラー展開ぐらいで天狗になるなドキュソ。
0192名前は開発中のものです。02/05/01 22:41ID:???
あたしって、旅慣れてるから、旅慣れテーラー?
0193名前は開発中のものです。02/05/01 22:42ID:???
フェルマーの最終定理の証明できるくらいで威張ってるならばゲーム業界くるなよ。
このまえなんかテーラー展開で威張ってるドキュソが来た。
0194名前は開発中のものです。02/05/01 22:49ID:???
やっぱりゴールドバッハ予想くらい証明できないとね
0195名前は開発中のものです。02/05/01 23:58ID:???
お前ら寒いよ。
0196名前は開発中のものです。02/05/02 13:12ID:???
バナナで釘が打てるくらい寒い。
0197名前は開発中のものです。02/05/03 11:58ID:IYsMvn.w
最近は、円周率を3で教えるとか
0198名前は開発中のものです。02/05/03 12:44ID:???
いいっちゃ良いよね。
計算の内容さえ理解できれば。> π
0199名前は開発中のものです。02/05/03 15:11ID:???
最近はマラソンも42kmでよいそうだ。
0200名前は開発中のものです。02/05/03 16:13ID:???
世界一不正確な円周率 = 4 だって。ギネスに載ってたよ。
0201名前は開発中のものです。02/05/03 18:29ID:???
3じゃないって事さえ教えれば良いと思うがどうだろ。
でもπ=3だと正六角形の一辺の辺と円の半径が同じならば
どちらも周囲の長さは同じ罠。
あと円周率は3って決めつける厨房教師もでてきそう。
ほら、反比例のグラフを定規で書かすやつみたいに。
0202名前は開発中のものです。02/05/04 00:29ID:4m79E84c
玉が転がるときの
転がり摩擦と滑り摩擦はどう違うの?
0203名前は開発中のものです。02/05/04 03:26ID:SDeID7JM
静摩擦と動摩擦
0204名前は開発中のものです。02/05/04 09:34ID:gi.FYHWY
膣圧
http://natto.2ch.net/test/read.cgi/voice/1018497314/
0205名前は開発中のものです。02/05/08 00:46ID:wjoxu7eY
正直、流体力学はゲームに使えるの?

あと、渦なしの水面が
>>(∂/∂t)^2 z = k Δz  (ただし、Δ = (∂/∂x)^2 + (∂/∂y)^2)
になるのはなぜか教えてちょ。
0206名前は開発中のものです。02/05/08 12:31ID:???
ひとよひとよってなんのことかおしえてちょ
0207名前は開発中のものです。02/05/08 18:18ID:???
スーパーマリオで慣性の法則が何たるかが分かった奴もこの世には居るはずだ。
0208名前は開発中のものです。02/05/10 08:22ID:???
>>205
解が波動関数になってそれっぽいから.
渦無しって粘性ゼロという意味だっけ.
量子力学でそんな話があったような無かったような

正直使えないのでは?
毎フレームFEM解くのは量子コンピュータ待ちか
0209名前は開発中のものです。02/05/11 16:42ID:???
某掲示板からのコピペですが、
----------------------------------------------------------
剛体に同じ力を加えても、重心の加速度は同じで、
角加速度が違ってくるのは、同じ力積なのにエネルギーが
変わるから変な気がするんですが、誰か教えてもらえませんか?

それとも自分の考えが間違っていますか?
-----------------------------------------------------------
ってどうなんでしょう?
0210名前は開発中のものです。02/05/11 18:50ID:???
力積とエネルギー(仕事)は根本的に単位が違うよ。
「力積が同じでエネルギー変化が異なる」という例は、
ほかにもいくらでも考えられるよ。
0211名前は開発中のものです。02/05/13 23:48ID:WAy/mj8A
>209
そもそもどうやって力積を求めているのか、
そこをちゃんと理解してないのでは?
0212名前は開発中のものです。02/05/14 02:02ID:???
http://www-2.cs.cmu.edu/~baraff/sigcourse/notesd1.pdf
の最後に、その問題について解説してるみたい。
0213名前は開発中のものです。02/05/14 21:49ID:.e.pT2og
 
0214名前は開発中のものです。02/05/17 11:28ID:WVs5nPNA
剛体間のヒンジ拘束はどういった拘束条件になるのでしょうか?
点拘束(ボールジョイント)二つ付けると過拘束になって
数値的に不安定になりそうです.
ボールジョイント+スライダジョイントでしょうか.
0215名前は開発中のものです。02/05/17 18:35ID:GL4pTvyU
ヒンジ拘束ってどういう拘束?
二つの剛体が完全に一体化されている状態?
0216名前は開発中のものです。02/05/17 19:04ID:???
ヒジとかヒザみたいな1自由度の拘束だよ
0217名前は開発中のものです。02/05/17 19:18ID:???
ヒンジなんてハイカラな用語使うなよ。
日本人なら蝶番(ちょうつがい)と言え。
0218名前は開発中のものです。02/05/17 19:31ID:???
>蝶番拘束
構造力学で静定,不静定ってのを習いましたがそんな感じです
0219名前は開発中のものです。02/05/17 21:56ID:???
ボールジョイント2つだとたしかに不静定になるけど、数値計算的に
不安定ってことはないと思うよ。ただ、解が一意に決まらなくなるので、
拘束力ベクトルの長さを最小にする、みたいな条件を適当に付加すれば
解を決めることができるようになる。
0220名前は開発中のものです。02/05/18 14:20ID:r7tHRVkg
拘束の運動方程式ってみんなどんな方法で解いているんですかね?
連立微分方程式?連立代数方程式?
ニュートン力学で解いている方も居ますよね?
022121402/05/18 21:35ID:???
>>219
なるほど勉強になります
>>220のどれで解いているのか解りませんが,
拘束力を加速度(もしくは速度と撃力)の関係を連立方程式で解いて,積分すると拘束される.
という感じです.力だからニュートン力学かな?
{拘束点間の相対速度}={拘束撃力}{質量とか慣性モーメントとかの行列}
これをそのままニ点間(6行6列)で組み立てても,一意に求まらない?
で,なにか条件つけて未知数5個にするわけですかね?
んー数学もっと勉強しておくんだった...
022222002/05/18 21:43ID:ur3STz7o
214さんはまだ拘束運動はうまく行ってないんですか?

219さんは詳しいですね。
やっぱり連立代数方程式を反復法とかで解いたんでしょうか?
0223名前は開発中のものです。02/05/18 21:55ID:???
ここすごいね
http://cgi3.tky.3web.ne.jp/~tkano/
0224名前は開発中のものです。02/05/18 22:22ID:???
KanoたんのRigidBodyは拘束運動はやってないよ
022521402/05/18 22:31ID:???
ボールジョイント(点で拘束)なら上手く動いています.
どっかのスレにある触手みたいな感じ.
60FPSとかだと誤差の蓄積でずれて多少の補正は必要で,
内力でコントロールとかは出来ていませんが.

全然理解していませんが,
解析力学+ロボット工学にでてくる方法(ラグランジュ方式?)のがいいのですかね.
ロボット工学の成績は20点くらいだったなぁ・・
022622002/05/18 22:48ID:ur3STz7o
>225

目で見てわかるほどの誤差が出ますか…。
私の場合、微分方程式+重心に働く力、とかなら誤差も無くうまく行くんですけど
外部から撃力が働くと難しいんですよね。

ロボット工学とかはかなり知識を積み上げないと難しいですね。
未定乗数ってなんなんでしょ?
022721402/05/18 23:32ID:???
>微分方程式+重心に働く力
ちょちょっと無学なものでよく解りませんが誤差が無いのはいいことですえ.

一応いろんな人が見ていると思うので簡単に私の方法を書いておきます
今は無き「こってり屋」さんに書いてあったのそのままですが,
2剛体間の一点拘束に限って,撃力を用いて書くと,

拘束撃力Pをうけて拘束点の速度VpはVp’に
Vp’ = Vp + P/mass + ((p×P)[I]^-1)×p
(mass:質量,[I]^-1慣性テンソルの逆,左手系のDirectX型表記です)
拘束条件:2剛体の拘束点間の相対速度はゼロ
Vp1’ - Vp2’= 0

これを組み合わせてPを前に出して緩和法で連立方程式を解いています.
dV/dt=0ですが,外力等を別にかけますのでVp1≠Vp2です.

目に見える誤差は,回転と瞬間速度(ω×pの部分)の関係によるもので,半径方向に離れて行きます.
また位置ずれも考慮して,X1=X2として解くとneko氏のAB法みたいになる?
■ このスレッドは過去ログ倉庫に格納されています