Re: シューティングゲームの円軌道の弾 ( No.1 ) |
- 名前:憂煉 日時:2008/03/11 02:40
えーと、math.hヘッダのsin関数とcos関数が遅すぎてやってられないという事でしょうか…?
bccの環境ではmath.hの代わりにfastmath.hをインクルードすると幸せになれます。VC++には存在しませんがw
fastmathはエラーチェック(0除算等)もすっぽかすので、気をつけてください。
それと、近似計算はやめておいたほうがいいです。最近のCPUにはFPUが標準搭載されているので下手に近似計算するより標準ライブラリに任せたほうが速いと思います。
がんばってインラインアセンブラでガリガリとx87系の命令を呼ぶというのはアリかと思います。以下を参考にしてください。
double rad=M_PI;
double s,c;
__asm{
fld rad;FPUのスタックにradをプッシュ
fsincos;演算命令
fstp c;FPUのスタックから結果をポップ。cos(rad)が出てくる。
fstp s;もう一度ポップ。sin(rad)が出てくる
}
|
Re: シューティングゲームの円軌道の弾 ( No.2 ) |
- 名前:通りすがり 日時:2008/03/11 11:47
憂煉さんレスありがとうございます。
すみません、開発環境はVC++なんです。
書き込み忘れ申し訳ありません。
|
Re: シューティングゲームの円軌道の弾 ( No.3 ) |
- 名前:優柔不断 日時:2008/03/11 20:28
Sinのマクローリン展開はこんな感じですかね。
SUM(n:0〜∞)((-1)^n/(2n+1)!)*(x^(2n+1))
^は累乗記号です。というよりC言語ではありません。どちらかというと数学記号に合わせました。
!は階乗記号です。
|