[過去ログ]
物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術 (1001レス)
物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術 http://game.5ch.net/test/read.cgi/gamedev/1005204354/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
410: 403 [sage] 02/04/06 05:37 ID:??? いよいよ場違いかもしれませんが 重力定数G、紐の長さL、振れ角Rとしたとき while(1) { v += -(G/L)*sin(R); x += -v*cos(R); y += -v*sin(R); #Rの更新は省略 } でかなり近い挙動をするんですが これは振り子とは違うんでしょうか? 所詮ゲームだからそう見えりゃいいっちゃいいんですが・・・ あ、>390さんがわざわざソース書いてくれたのに 無視してるようでゴメンなさい http://game.5ch.net/test/read.cgi/gamedev/1005204354/410
411: 名前は開発中のものです。 [sage] 02/04/06 08:11 ID:??? >>410 Rは水平軸との角度で,vは角速度ですかね? 冲=1.0で省略てな感じかな? まっとうなのは以下のようになると思います 振子の中心のモーメント M = m g cosθ × L 振子の中心の慣性モーメント I = m L^2 よって角加速度 ωdot = M / I = g cosθ / L あとは積分 while ( ) { ω += 冲 * G * cosθ / L; θ += dt * omg; x = L * cosθ; y = L * sinθ; t += 冲; } これだと逆三角関数いりませんぜ >無視してるようでゴメンなさい オナニーして公開しただけですの気にしないで下さい http://game.5ch.net/test/read.cgi/gamedev/1005204354/411
413: 403 [sage] 02/04/06 08:38 ID:??? >411 えーと、中心点の座標(ax,ay)とおもりの座標(px,py)だけわかっている状態で 振り子運動をさせたいんです なので現在 function R() { var x,y,result;//ローカル変数確保 x = ax-px; y = py-ay; result = atan(x/y); return result; } function L() { var x,y,result;//ローカル変数確保 x = (ax-px)*(ax-px); y = (py-ay)*(py-ay); result = sqrt(x+y); return result; } として、>410のコードで動かしてます それから振り子運動中に外力を加えたりしてるので 時間軸入れるとうまくいくかわからないので省略してます >411の場合は初回だけ振れ角を出してやればいいのかな? http://game.5ch.net/test/read.cgi/gamedev/1005204354/413
418: 411 [sage] 02/04/06 12:23 ID:??? でこんな感じ while ( ) { //モーメント M = mass * G * cosθ * L; //外力Fが重心において回転方向に加わる場合 M += F * L; //(Lを含まないこともあろうとあえてLは約分せず) ω += 冲 * M / ( L^2 * mass ); θ += dt * omg; x = ax + L * cosθ; y = ay + L * sinθ; } と書きながら>>410が今やっと解りました(アフォ でもやっぱ角速度と角度で管理したほうがよくないですか? 冲=1.0にしてθ=π/2 - R とすればほぼ同じ形になります で,一つ違う所は, × v += -(G/L)*sin(R); ○ v += -G*sin(R); じゃないかな・・・ 次元も合うし.冲=1.0で考えると前者のvは角速度ですよ(L=1.0なら別ですが) http://game.5ch.net/test/read.cgi/gamedev/1005204354/418
420: 403 [sage] 02/04/06 19:30 ID:??? >418 なるほど・・・ ただ-(G/L)なのは振り子をこぐのに必要なんです 私もあきまさ氏のあぷろだを借りてUPしてみました http://www.pureweb.jp/~akimasa/up/img/dat004.swf ←キーと→キーが振り子を押す力 ↑キーと↓キーでひもの伸び縮み SPACEキーでおもり切り離し ブランコをこぐ要領で、まず左右に押して ある程度勢いがついたら∞を描くようにヒモを伸び縮みさせると 振り幅がどんどん大きくなります ↑の振り子エンジンは>410です >411とかも試してみたんですが 自分の読解力が無いせいか、何故かうまくいかない あと丸め誤差のせいなのか ヒモ長が微妙にずれていく・・・ http://game.5ch.net/test/read.cgi/gamedev/1005204354/420
422: 403 [sage] 02/04/06 22:39 ID:??? マイナーバグフィクス http://www.pureweb.jp/~akimasa/up/img/dat005.swf ヒモ長の狂いに法則がありました 角速度が一定以下だとどんどん縮んでしまい、 ある速度より大きくなると速度にほぼ比例して伸びていきます。 ただし角速度0だと安定 一体何が原因なんだろう・・・ 振り子エンジンは>410,>413 http://game.5ch.net/test/read.cgi/gamedev/1005204354/422
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s