お前らRPGツクールでゲーム作れって LAWルート (388レス)
前次1-
抽出解除 レス栞

313
(1): 名前は開発中のものです。 [sage] 2009/06/20(土) 11:05:19 ID:IrWZy+Ag(2/4) AAS
atan(というかatan2)の作り方は人それぞれだけど、
自分なりに色々作って、今のところは↓に落ち着いてる。

ATAN[i]=(180/PI)*Math.round(Math.atan((i-139)/139)); //atanの配列。i=0,1,2,…,139*2

function atan2(s1,s2,x1,x2){
  dx=s1-x1;
  dy=dz=s2-x2;
  dz*=-1;

  //二分探索で。
  if(dx>=dy){
    if(dx>=dz){
      theta=360;goto label1;
    }else{
      theta=270;dy=dx;dx=dz;goto label1;
    }
  }else{
    if(dx>=dz){
      theta=90;dy=dx;dx=dz;goto label1;
    }else{
      theta=180;goto label1;
    }
  }
label1:
  atan=ATAN[dy*139/dx+139]+theta;
  atan%=360;
}

消費ステップは最低で16、最高で19。「139」という数字に特に意味はなくて、
大きめの奇数なら何でもいい。
314
(1): 287 [sage] 2009/06/20(土) 17:14:50 ID:EiZ+vaXy(1/2) AAS
>>313
atanの配列というのが良くわからん
エクセルでその配列を入力してみたら
-45〜45ででたけどこれで合ってる?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 4.536s*