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

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

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

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

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

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

と表せるよとか。

他にも剛体運動、力積とか語ってください。
0538名前は開発中のものです。03/10/09 02:10ID:PQBkgIyN
>>535
>山崎由喜憲
ベクトルも知らないでデモ作っちゃうんだからある意味すごい。
0539名前は開発中のものです。03/10/15 11:06ID:FG7XkK0D
叩きネタのときだけ盛り上がるなぁ・・・
0540名前は開発中のものです。03/10/22 23:20ID:VEu5wcsq
物理に関する記事とかプログラムとか載せてるサイト知ってる人いる?
0541名前は開発中のものです。03/10/23 01:01ID:8ew0aGzz
>>540
http://www.pixar.com/companyinfo/research/pbm2001/

日本には多分ない。
0542名前は開発中のものです。03/10/23 23:31ID:NGvztx/F
あった。勝手に載せちゃうけど。
http://dxsimulation.at.infoseek.co.jp/index.htm
0543名前は開発中のものです。03/10/24 08:36ID:piA4riPR
行列について勉強してんだけど
これにはよく逆行列とか固有ベクトルとか
出てきますよね?だけど、実際にこれがどういうふうに使われるのかがわからなくて
すごく疑問なんですけど誰かわかりやすく教えてくれませんか?
ゲームのポリゴンとかの計算とかで行列がよく出てくるとか聞いたんで
その辺の例を出しつつわかりやすく教えてくださるとうれしいです
054454303/10/24 09:56ID:piA4riPR
っていうか逆行列だけでもいいです
0545名前は開発中のものです。03/10/24 10:05ID:NkQA5COa
>>544
なんで何に使うかもしらずに勉強してんの?
使い始めると一瞬で壁にぶつかるのでそんときに覚えればOKじゃない?
544にどこまで知識があるのかわかんねぇから説明のしようがないな。
逆行列使えなきゃ光源計算も満足にできねぇからそれ以上進めねぇし、
壁に当たったら当たったでわかりやすい解説があるから大丈夫じゃないの?
0546名前は開発中のものです。03/10/24 10:15ID:cEKK5S8I
DirectXとか使ってたら自前で光源計算なんか必要無い罠。
0547名前は開発中のものです。03/10/24 10:27ID:NkQA5COa
>>546
それは時代遅れじゃないかね。
0548名前は開発中のものです。03/10/24 10:56ID:VwcX0tTV
光源計算なんて時代遅れ。時代は真っ暗闇だよ
0549名前は開発中のものです。03/10/24 21:28ID:mivmAeIK
>>548
赤い線だけで3Dを表現するって事?
0550名前は開発中のものです。03/10/24 21:44ID:OylrvD17
おまいさんは頭が固すぎる
0551名前は開発中のものです。03/10/24 22:04ID:6r870BJr
>>549
違う。緑の線だ。
0552名前は開発中のものです。03/10/28 23:53ID:eC4KD5sc
ラグランジュ緩和法で拘束運動の問題を解いてるんですが、解が収束しません。
おそらく式が間違っているのでしょう・・・。

ところで拘束力のベクトルの長さを最小にするって
どういう条件式になるんでしょう?
055355203/10/30 21:11ID:0zlvyoHk
やってる人いないかな・・・
ま、なんとかやってます。
0554名前は開発中のものです。03/10/31 04:00ID:YmA4El9x
問題は積分法
0555名前は開発中のものです。03/10/31 11:16ID:u1mbu8n2
シンプレクティック
0556名前は開発中のものです。03/11/05 09:06ID:UK6b8HRt
ルンゲクッタ法について質問があります。

Xiから次のXi+1を求めたいのですが
求める計算でXi+1/2の傾きを使っているのです。

でも、実際はXiのところの傾きしか分かってなくて、
Xi+1/2のところの傾きなんて分からないので・・・

どうやって計算するのでしょうか?

参考にしたところ
ttp://www.titan2.cee.yamanashi.ac.jp/Lecture/Num/00num12/sld009.htm
0557名前は開発中のものです。03/11/05 12:03ID:Q5PqphOn
>>556
ネットだけじゃなくて本買って調べたらわかるよ。
図書館でもいいし。
0558名前は開発中のものです。03/11/05 23:04ID:Oucscy9y
HUNTER×HUNTERオンライン
http://game3.2ch.net/test/read.cgi/mmosaloon/1067704391/
0559名前は開発中のものです。03/11/05 23:25ID:VfJSFCZ2
>>556
1次微分の解析解(ていうか微分方程式)から計算できるのでは ?
解析解を持ってないってことなら, そもそも問題が違うと思うんだけど.
0560名前は開発中のものです。03/11/06 01:15ID:nXksNLjc
>>556
書いてあることそのままなんだけど、
Xi+1/2の傾きというのは、( Xi + h/2, Yi + dX/dY * h/2 )という点の傾きのこと。
仮想的に前進した点の傾きを求めることで高次の微分量を計算し、
結果的に4次の精度で近似ができるの。

大学1年辺りの線形代数で出てくるテイラー展開が判ると、
4次の精度というのががどうやって決まるかが判る。
でも、ゲームだったら公式をそのまま使うだけでいいと思う。
0561名前は開発中のものです。03/11/07 07:48ID:bfdhhpDW
3Dのポリゴンとポリゴンのあたり判定はどうしたらよいのでしょう?
0562sage03/11/07 12:43ID:khVU0c1e
556です。
剛体の動きを再現したくてこのような質問をしました。
次の時間での位置を求めるのに、ルンゲクッタ法を使おうと思ったのですが
実際プログラムを書こうとすると、556みたいな疑問が出てきたのです。

色々と調べてみて、
速度と加速度が分かってる場合は、テイラー展開(2次?)で

Xi+1 = Xi + v * t + 0.5 * a * t * t

で、計算できることがわかったのでこれでやってみようと思います。
(高校の物理で出てきた式ですね^^;)


加速度の変化量も1ステップ前との差分で求めたものが使えるなら
上の式に付け加えて、

Xi+1 = Xi + v * t + (1 / 2) * a * t * t + (1 / 6) * b * t * t * t;
(bは加速度の変化量)

でも、できそうみたいなのでこっちの方も試してみたいです。


レスありがとうございました。
0563名前は開発中のものです。03/11/17 04:29ID:EUhrQrgg
>>561
専門書にはあると思うけど、3D関係の本は高いからね・・

自分でそういうエンジン作った事無いからわかんないけど、たぶんね、
簡単な方法だと3Dオブジェクトの中心点間の距離を計算するのが
一番簡単だと思う、ただし当たるのは中心点より球状になるけど。

もしくは、ポリゴン同士が交差しているかを計算する方法だけど、
これは専門書を見たほうが早いかも。
線と面が交差しているかとか、面と面が交差してるかとか
そういう数学的な方法がある。式を書くのはめんどうだけど、
大学の基本の代数とかの本にも載っていると思う。

3Dオブジェクト内にあるかないかといった高度な判定になると、
あるポリゴンの表がわにあるか裏側にあるかといったことを3Dオブジェクトの
閉じた空間を構成している全ポリゴンでいちいち判定するとか、
まあ近い同じような形で近似して判定するとか、
これは実際ゲーム業界で働いている人に聞いて処理の高速化手法を教えてもらわないと無理か。

ちょっと前のゲームだったら明らかにオブジェクト間の距離で計算してると思う。
D=√(dx^2+dy^2+dz^2)
↑こんなのね
0564名前は開発中のものです。03/11/17 11:31ID:ue1Q4fwm
>>561
ttp://www.amazon.co.jp/exec/obidos/ASIN/155860801X/
0565名前は開発中のものです。03/12/11 19:26ID:rkNvjgxy
age
0566名前は開発中のものです。03/12/16 20:16ID:p7I5fXPY
三角関数の、sinカーブってありますよね。
(0,0)を中心とした波型のやつ。
あれを・・・θ度に傾けることはできるでしょうか?

たとえば最も単純な関数 y = x だったら
y = tanθ・x の式で、0度〜89度傾けることができます。

文字だと解りにくいので、図で表現すると、こんな感じです。
ttp://www2.oekakibbs.com/bbs/sumika/oekakibbs.cgi

右辺にtanθを乗算すれば、どんな関数でも傾けることができるんでしょうか?
いいえ、そんな単純じゃありませんでした。

y = sin x を傾けようと
y = tanθ・sin x という式でプログラムを組んでみましたが
うまくいきませんでした。
そりゃそうです。単純に考えれば
y = a sin x の a の数字が、tanθ上がるだけなので
傾いたりするわけがありません。

どんな式を組めば良いでしょうかね・・・
0567名前は開発中のものです。03/12/16 20:40ID:G0gwgM/i
傾けるんじゃなくて、回転させるだね。

回転や座標変換でぐぐれ
0568名前は開発中のものです。03/12/16 21:27ID:q1jfDEjQ
>>566
普通に y = sin x で計算した結果(点)を任意の角度で回転させればいいのでは?
2度計算することになるけど。
複数の演算を合成したいのなら、今後n次元に拡張していっても難しいこと考えずにできる
行列演算するのがお手軽かと。
0569名前は開発中のものです。03/12/17 02:28ID:YosH7SoE
>>566
x = f(t), y = g(t)とする

f(t) = -sin(θ)*sin(t) + cos(θ)t
g(t) = cos(θ)*sin(t) + sin(θ)t

アタマイイオレカコ(・∀・)イイ
0570名前は開発中のものです。03/12/18 09:58ID:YXhvjhOR
つか、行列を切り捨てた今の高校教育過程は愚の骨頂だと思う。
0571名前は開発中のものです。03/12/18 12:00ID:WRCSjk9k
>>570
え?マジ?
終わってんじゃんそれ。
0572名前は開発中のものです。03/12/18 16:38ID:Aj4qSTs8
>>569
計算自体は正しくても、仕様書もなく個人で作ってる工房にとっては、
後から見たら「これ何の計算してんだっけ?」てなりかねないなぁ(藁

やっぱ要素ごとに行列にして、最後なんらかに出力する前に行列演算するかなぁ漏れなら。

>>570
どうせ高校で習う行列や微積分なんて、なんだかんだいって算数の域なんだから
それらが必要になる人間は線形代数学や解析学なんかで深く学ぶさ・・・。
0573名前は開発中のものです。03/12/18 19:56ID:YXhvjhOR
>>571
マジ。でもってセンター数学の選択にBASICなんてのがある。莫迦じゃねーの。

>>572
その「算数」ができないから困るんだってば。
非常勤で教養の物理実験や力学の面倒みたりするけど、
「カイテンギョーレツってなんですかー?まだ習ってませーん。」
なんて事をキラキラした目で言われてみ。何を教えろっつーんじゃ。
0574名前は開発中のものです。03/12/18 20:05ID:/ty9xPG0
角度θの回転行列ってのがあって、実際ベクトルにかけてみれば回転してるでしょって一度示せばいいだけじゃない。

回転行列は自分の頃はもうなかったから、8年前なんだっけ? なくなったのは。
行列の計算自体は今でもあるはず。
0575名前は開発中のものです。03/12/18 20:58ID:0/gVf4Xo
単位円上の点を回転させようとすると、自然に加法定理が得られるのがへぇ〜だったな。
代数幾何と基礎解析がこんなところで結びついているのかー、と。

とりあえず大学院時代のバイトで数学の副手やってたが、そのときはもう散々なありさまだった。
0576名前は開発中のものです。03/12/21 19:23ID:NMvqfey4
>>573
高校で教えることが変わってるんだから、それに合わせて
大学の実験や講義の内容も変えていけばいい。
柔軟な院生が教壇に立つ場合はまだマシだけど、
基本的に大学で教える人たちは使いまわすだけで横着だからね、
特に非常勤講師とか。
0577名前は開発中のものです。03/12/24 06:48ID:tizWXAHC
回転行列でなくて、複素数平面で教えたれ。
準同型だしな。(たぶん)

回転行列よりも計算は単純と思う、あとn乗がぐるぐる回転してオモロイ
0578名前は開発中のものです。03/12/24 20:53ID:BZpFTtZI
>577
そうそう。うちらの時は逆にガウス平面ってやらなかったからね。
これで考えれば√i が簡単に出来ること、周りの連中がどうすればよいか四苦八苦してたことが懐かしい。
0579名前は開発中のものです。04/01/07 11:24ID:SQoLA4NA
なんか次元が違う…物理偏差値70でも会話が理解できない。
所詮、高校生の70なんてこの程度なんですね。
0580名前は開発中のものです。04/01/08 01:03ID:y051rs8o
理解力ではなく、知識の問題だからね。
大学入って数学の講座をとればそんな難しいことは逝ってないのが解る。
0581名前は開発中のものです。04/01/27 00:08ID:Z2uYoNlB
物理の偏差値が70もあれば東工あたりも狙えるよな・・それ以下の大学だから知らんが・・
したらこの板の話題はそんなに難しいものではなくなるよ。

力学の話題 > そこらへんの本、力学とか連続体力学等を読めばわかるかも
代数の話題 > ここでの話は線形代数あたりに書いてるよ。準同型とかイデアルの話題は代数でも群論とか
3Dの話題 > これも初等代数(幾何)だけど、ここでの内容はその応用とか、もしくはCG関連の本にまとめられてる
ルンゲクッタとかの話題 > 計算機科学、近似とかその辺の話題

ゲームの理論的側面をみると、RPG、賭博などは確率統計学とかにも依存してるし
また、ゲームのテストなんかをみると、人工知能とか巡回セールスマン問題とかにも関係してくるかもね。

ただ、こういう勉強をしたからといって良い作品が作れるわけではないし、
結構学歴は関係ないのかもしれない・・難しい大学に入ると、
アカデミック過ぎて理想と現実のハザマで揺れ動く事になるよ。(研究が主になる)
0582名前は開発中のものです。04/01/28 19:44ID:voPG9Hwm
難しい大学でサンデープログラマなら最強ってことだな。死ぬだろうけど。
0583名前は開発中のものです。04/01/28 20:49ID:TX0crs1Q
うむ
力学ゲーで最も成功し愛されているパネキットですら
投げたした人は多数だし(オレモナー
0584ニュートソ04/04/26 05:59ID:idjw26Kx
ラグランジュの運動方程式で???となっています。
3Dで単一の剛体があり、剛体の重心が点oに固定されている運動方程式を
導こうと思ったのですが、ラグランジアンの時点でとても計算する気になれないくらいの式量になってしまいました。

オイラ角使用で、回転エネルギは 1/2ω・(Iω)→をオイラ角で記述(この時点でものすごい量)
行く行くは複数剛体をリンクで繋いで。。などと考えていたのですが、計算を間違わない自身がないです。。。
こんなもんでしょうか?
0585名前は開発中のものです。04/05/04 12:06ID:qKEkic75
ばねの運動が上手くいかないです。
rx,ry,vx,vy,ax,ayを位置、速度、加速度ベクトル、
cx,cyをばねが自然長になった時の位置としました。

case WM_TIMER:
rx=(rx+vx)%width;ry=(ry+vy)%height;
vx+=ax;vy+=ay;
ax= (cx-rx)/50;ay= (cy-ry)/50;
InvalidateRect(hw,NULL,TRUE);
break;

こうすると、単振動の振幅が増大していってしまうんです。
どうやったら解決できますか?
0586名前は開発中のものです。04/05/04 12:37ID:27DJ661l
ルンゲ・クッタ
0587名前は開発中のものです。04/05/04 13:50ID:PRlvGj/i
>>584
ある程度の複雑さは避けて通れないと思う。
それでも難しいときは他の方法をかんがえたほうが良いんじゃ?
いろんな解決方法があるみたいだよ。

>>585
バネができないってのはまだ基本が理解できてないっぽい。
要勉強
0588名前は開発中のものです。04/05/04 14:07ID:NixkOk4w
http://galleries.mpegstation.com/content/Liquid_Gift/15.mpg
0589名前は開発中のものです。04/05/04 21:21ID:Pn9M8zaS
>>585
それ、整数で計算させてないか?
時間間隔を小さくする。ロン毛食った法で計算させる。
といったとこかな。
0590名前は開発中のものです。04/05/04 23:52ID:qKEkic75
>>587
教科書とか参照しないでやろうとしてたのですが、
無理みたいですね。
それらしい本漁って見ます。

>>589
はい、整数で計算させてました。

型をfloatにして、時間間隔を短くしましたが、
やっぱり上手くいかないです。
「ロン毛食った法」っていうのはモンテカルロ法の事ですか?
0591名前は開発中のものです。04/05/05 00:32ID:UKg3AzNV
オイラー法じゃダメです。
詳しくは教科書を読んで
0592名前は開発中のものです。04/05/05 10:43ID:Q4emnZJi
物理シミュじゃなくて、単にばねの動きのみを表現させたいなら、
単振動でもいいんじゃないか?
0593名前は開発中のものです。04/05/05 16:01ID:797y1y3d
sinでやれば単振動にはなりますが、物理的なシミュレーションをやりたいんです
059458404/05/05 17:40ID:8LeTquOf
>>587
そうですか。なんか数値計算には向かないみたいなことが書いてあったので(場合によるでしょうが)
ニュートソオイラ運動方程式でやってみまつ。

>>585
数値積分でググッたらそれなりの資料は簡単に集まると思いますよ
ルンゲクッタがいいとおもいますが発散を抑えるだけなら他にも簡単なのがいろいろあったと思います。
ゲームなんかではダンパを設けてそれなりに。。。ってのが妥当でしょうか。
ルンゲクッタもそんなに時間はかからないと思いますが。
0595名前は開発中のものです。04/05/10 11:59ID:N/fVdOPT
金子氏逮捕されちゃったよ……
0596名前は開発中のものです。04/05/10 12:12ID:OfW6Z+uy
NekoFightの作者様でしたかつД`)・゚・。・゚゚・*:.。..。.:*・゚
0597名前は開発中のものです。04/05/10 12:18ID:0QopKbcW
マジであの金子氏なのか?
0598名前は開発中のものです。04/05/10 12:22ID:N/fVdOPT
http://untrod.keihanna.ne.jp/member.html
ソウス。
あーあー、もったいない。
0599名前は開発中のものです。04/05/10 12:55ID:G2PAIqPn
どびっくりですな。ていうか、意外に素性バレないもんだね。
0600名前は開発中のものです。04/05/10 19:44ID:+YhZAZMF
日本では数少ない、シュミで物理シミュなサンプル公開していたHPだったのに・・・合掌。
0601名前は開発中のものです。04/05/12 23:43ID:10PMy/KQ
>590
ググるならキーワードにsymplecticを追加してみるといいかも
0602名前は開発中のものです。04/05/21 04:47ID:ud8TfJ4K
>>585,593
計算誤差が溜まっていくやつの典型だな。
回避は不可能だから、速さによる減衰項でも設定すれば?

sin使うやつでも十分物理的だと思う。
微分方程式とくと出てくるし。

ルンゲクッタってどんなんか忘れたけど、
計算による誤差がどうのって内容だったと思う。
でも、誤差は減らせても十分時間がたつとやっぱダメかも?
0603名前は開発中のものです。04/05/23 18:32ID:9Va5aQ+H
低レベルな質問ですけど、物体同士が接触している時
「力を及ぼしあっている」(運動方程式)のか
「衝突した」(運動量保存の法則)のか
をどうやって判断したらいいのでしょうか?
0604名前は開発中のものです。04/05/23 18:42ID:lXyRypt6
どういう状況なのかヨクワカラン
060560304/05/23 19:26ID:9Va5aQ+H
高校の物理だと
「腕が箱を押している」と言われたら運動方程式
「腕と箱がぶつかった」と言われたら運動量保存を適用しますよね。
でもこのような分類の仕方はコンピューターにはできないですよね?
もちろん理論的にはどちらを適用しても間違いではないんでしょうけど
それぞれ適する状況があると思うので。
0606名前は開発中のものです。04/05/23 19:34ID:Z1lcpfE7
運動方程式に従って運動している物体同士が衝突した場合
衝突後のエネルギーを計算する式が運動量保存則なのではないか
0607名前は開発中のものです。04/05/23 20:12ID:xVOPY9Zu
>>605
運動量保存則って何か、ざっくりとでいいからココに書いてみません?
060860304/05/23 20:33ID:9Va5aQ+H
んー上手く説明できない

走っている車が箱と接触した場合、
非常にゆっくりとだったら車と箱が接したまま移動するから
車が箱を押す力と摩擦力を考えて運動方程式を立てればいい
しかし猛スピードだった場合車と箱はすぐに離れるから
車と箱それぞれの質量・速度と反発係数を考えて運動量保存の法則を使う。
しかしどこからがゆっくりでどこからが速いのか?ってことです

>>607 衝突の前後で二つの物体の質量×速度の合計は変わらない
0609名前は開発中のものです。04/05/23 20:35ID:akRKG8io
>602
>回避は不可能だから
symplecticでググる
0610名前は開発中のものです。04/05/23 20:41ID:UheGu9T+
>>603
ゲームの物理シミュなら、物体にダンパーとバネ組み込んだモデルで力に換算して
計算すれば、運動量保存の法則を持ち出すまでもないと思うんだが?
ひょっとして、反射係数から、ダンパーとバネのパラメータを求めたいってこと?
061160304/05/23 20:55ID:9Va5aQ+H
つまり全ての衝突をバネに例えるって事ですか?
その場合仮に反発係数1の衝突を再現したい場合、
反発力の大きさをどれくらいに設定すればいいかは
どうやったら求められますか?
0612名前は開発中のものです。04/05/23 20:59ID:UheGu9T+
>>608
・・・言いたいことはなんとなくわかったw
普通の数値計算の場合、跳ね返りは、一瞬の出来事ではなく、
一定の時間がかかるものとして処理する。(ゲームなら数フレームとか)
そうすると、上の二つの現象は同じ問題として計算できるよ。
061360304/05/23 20:59ID:9Va5aQ+H
自己解決
>>155あたりのペナルティ法ってやつの事ですね。
ありがとうございました
0614名前は開発中のものです。04/05/23 21:14ID:UheGu9T+
一足遅かったか・・・

//質量、バネ係数、反発係数から減衰係数を求める
double CalcDampingCoefficient( double fm,double fk,double fe )
{
//fm 質量
//fk バネ係数
//fe 反発係数

double dLnE = log(fe);//ln(反発係数)
double dLnEE = dLnE * dLnE;//ln(反発係数)の二乗
double dtmp = (dLnEE * 4.0f * fk * fm) / ( dLnEE + 9.869604401f);
double dRet;
dRet =sqrt(dtmp);//SQRT(4*バネ*質量*LN(反発)*LN(反発)/(PI*PI+LN(反発)*LN(反発)))

return dRet;
}
0615名前は開発中のものです。04/05/24 13:54ID:WZbryid6
質門ですけどばねの動きの計算ってこんな感じでよいのですよね?

//運動方程式(ダンパー付)
a=-cv-kx

// x1,x2 前ステップ、求める変位
// v1,v2 前ステップ、求める速度
// dt きざみ時間
v2=(-c*v1-k*x1)*dt
x2=v2*dt

で質問なのですが、この積分方法であらかじめ発散するパラメーターの範囲
って計算する事できるのでしょうか?
0616名前は開発中のものです。04/05/24 15:26ID:G4h0hiPP
>>615
発散するか振動するか減衰るかの判別は、振動学の本とか見ればでてるよん。
式は、テキストじゃかけないw
061760204/05/25 01:38ID:62M9HfrA
>>609
れすサンクス、あんまり詳しく見てないけど、
微分を使って高精密解を求める手法であってる?

>Symplectic法は位置や運動量などの保存量ではない物理量の厳密さまでは保証しないが、
>エネルギーが超高精度に保存されるので他の物理量の信頼性も著しく高い。
とあるように、少しずつでも計算誤差は溜まっていくのでは?
たぶんこのバネぐらいならほとんど問題無いのだろうけど・・
何次の近似式を使うかによっても精度が変わってくる様だし。

むかーしやった数値計算の演習かなにかでも上と似たような方法使ってたけど
(それは2次元で適当な関数の数値計算するやつ、微分を使ってどうのこうの)
意外と誤差が溜まるのって早いような気がする。マセマティカ?とか使ってたけど・・
061860204/05/25 01:59ID:62M9HfrA
ああ、よく見ると単なる微分じゃないのか・・
うまく指数関数を使って運動量と位置を別々に計算してんだね。
n 次Symplectic数値積分法を用いれば、
エネルギーの計算誤差がO(Δt^{n+1})になると、
つまりより高次の式を用いる事で
エネルギーの計算誤差を指数関数的に減らせるんだね。
結構便利かも。
061958504/05/25 18:33ID:BScYV9oY
symplectic数値積分法、自分もぐぐってみたんだけど
ハミルトニアンHをハミルトニアンH'で近似して、
「H'の厳密解」を求める方法みたい

理論的にはH'の厳密解が求まるから、誤差が蓄積していく事がないらしい
062060204/05/27 05:00ID:H+VDgLaB
>>585
自分もよく分かった訳ではないですが理論的には厳密解が求まる
ってなってますけど、やはり高次の展開は面倒くさいですし
無限次に展開できる訳ではないですから、極小の誤差は出るのではないかと・・
それに、系のエネルギーは精度よく出ますが、(積になってるため)
位置やら運動量についてはそれほどでもないようです。
(書店でそれ関係の本探してみたけれど、無くってよく分かりませんが・・)
0621名前は開発中のものです。04/05/29 11:15ID:0MZ6mwtd
(低次だと)誤差は結構出るけど、累積して発散したりはしない
ってのがウリなんじゃないの?
0622名前は開発中のものです。04/06/14 17:10ID:LcwM6cnh
>>18って47氏だよなw
0623名前は開発中のものです。04/06/14 17:23ID:bccvdXS8
どうでもいいが、その呼称はいまいちピンと来ないんだがな。
0624名前は開発中のものです。04/06/18 00:08ID:EMUT2NSb
インクレディブルマシーン
0625名前は開発中のものです。04/06/18 12:00ID:fgcAvitr
ゲームが廃れる加速度
v=a^3/b^3

aは厨パワー
bはパッチ
0626名前は開発中のものです。04/06/18 13:13ID:BMXm3Ikx
(´-`).。o0(加速度なのにvなんだ・・・
0627名前は開発中のものです。04/06/18 16:38ID:xHeZzj8T
(´-`).。o0( しかしdv にすると家庭内暴力になる罠
 
>>626
IDがBMXカコイイ。
>>624
IDがEMUカコワルイ。ROM厨は氏ね
0628名前は開発中のものです。04/06/18 21:43ID:F29KhlRt
シンセをバカにするな
0629名前は開発中のものです。04/06/18 21:57ID:xHeZzj8T
陳謝シマス
0630名前は開発中のものです。04/06/21 00:30ID:N/rTx0YD
「ゲーム開発のための物理シミュレーション入門」の付録AのVectorクラス
をVisualStudio.NET2003で実装しようとしたのですが、「コンストラクタ
の宣言に戻り値の型が含まれています」というエラーが出ます。このコン
パイラでは使えないのでしょうか。
0631名前は開発中のものです。04/06/21 00:36ID:X4sdLydq
>>630
C++は忘れたし、その本もってないが、
コンストラクタは戻り値持てないんじゃなかった?

関数の前にvoidついてたら外すとか。
0632名前は開発中のものです。04/06/21 00:45ID:N/rTx0YD
>>voidはついてません。
inline Vector::Vector(void)
{
x = 0;
y = 0;
}
//コンストラクタ
inline Vector::Vector(float xi, float yi)
{
x = xi;
y = yi;
}
コンストラクタはこれです。
063363204/06/21 00:54ID:N/rTx0YD
色々といじっていたらコンパイル通りました。どうも。
0634名前は開発中のものです。04/06/21 10:36ID:qOJWro2I
おフェラしてください!!
0635名前は開発中のものです。04/06/22 04:19ID:mg7GE6my
風俗いけ
0636名無しさん@そうだ選挙に行こう04/07/11 11:47ID:/yFc1fy2
1個対1個の物体の衝突の処理はわかるのですが、
dtの時間内に、1個の物体が2個の物体に連続して
衝突するような場合、どのようにしたらいいか迷っています。

まぁ所詮ゲームということで、考慮しないというのもありとは
思うけど、速度が速い場合にすりぬけとかしそうで・・

ビリヤードゲームとかどうやってるのでしょうか
0637名無しさん@そうだ選挙に行こう04/07/11 14:28ID:8VEeCcnx
移動距離を10分の1にして10回計算したら?
それで同時判定になったとしても誤差はだいたい10分の1だぞ。
0638名無しさん@そうだ選挙に行こう04/07/11 14:46ID:k8nFCFcR
>>636
こことかどーよ?
ttp://www.se.cs.titech.ac.jp/~oda/tips/billiard.html
■ このスレッドは過去ログ倉庫に格納されています