More ... | HSPコンテスト:ショートプログラム:数学・物理編:sin/cos
モジュール物体の回転や斜め移動には欠かせない三角比(sin/cos)を作成するモジュールです。 右端切れていますが、範囲選択してコピーすれば大丈夫だと思います。 dim sintable, 65 sintable = 0,6,13,19,25,31,38,44,50,56,62,68,74,80,86,92,98,104,109,115,121,126,132,137,142,147,152,157,162,167,172,177,181,185,190,194,198,202,206,209,213,216,220,223,226,229,231,234,237,239,241,243,245,247,248,250,251,252,253,254,255,255,256,256,256 #module #deffunc sincos int mref i dup result, sin@ repeat 2 rad = i&0xFF sign = 1 if rad>=128: sign = -1: rad - 128 if rad>=64: rad = 128-rad result = sintable@.rad*sign dup result, cos@: i+ 64 loop return #global ;●使い方 sincos 128; 256で一周。 mes "sin = "+sin+"/256"; 出力は256倍 mes "cos = "+cos+"/256"; 出力は256倍 もっといいのがあったら書いてってください。
使い方sincos モジュールの一番便利な使い方は sincos 角度 x = cos*距離/256 y = sin*距離/256 とすると、指定した角度と距離から座標が計算できることです。 ; さっきのモジュールをここにインクルードして #const Radius 200 repeat 256 await 50 sincos cnt x = cos*Radius/256 y = sin*Radius/256 line x+320, y+240, 320, 240 loop stop 応用しだいでいろんなことに使えます。 関連リンク
|