シューティングゲーム製作技術総合 16機目at GAMEDEV
シューティングゲーム製作技術総合 16機目 - 暇つぶし2ch111:名前は開発中のものです。
08/09/02 02:51:02 csq9srzC
>>107
2点を発射位置P(x,y)、命中位置Q(x2,y2)とする。

平行移動して発射位置が原点に来るように移動。
P' = (0, 0)
Q' = (x2-x, y2-y) = (x', y')

新しい命中位置Q'(x',y')がX軸に重なるように回転。
回転させるために回転行列Rを用意する。

R = ( cosX, sinX ) ( -sinX, cosX ) 角度Xは線分P'Q'とX軸の間

P'' = RP' = 原点
Q'' = RQ' = X軸上の点

最後に原点からQ''までの間を、長さrでn本の線分Tで目指す。

線分の各点を Tn(tx(n),ty(n)) とするとき、極座標で差分を表現する。

tx(n) = tx(n-1) + r*cos(t)
ty(n) = ty(n-1) + r*sin(t)

rに乱数を混ぜれば線分の長さがかわる。
角度tの変化を抑えれば急激な曲がり方はしない。

例えば t(n) = t(n-1) + rand() * ??? という風に。

計算が終わったら逆回転と逆平行移動すればおわり。
0除算に気をつけろ!

とか、如何ですか。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch