指定の座標への移動:解説編2007年10月01日 06時30分32秒

以前、指定座標へ移動するプログラムを載せたが、その仕組み を簡単に解説する。まず、プログラムの解説をすると手順は以下の通り。
  1. 指定座標の角度を求める
  2. 指定座標の角度と自分の向いている角度との差を求める
  3. +30度以上なら右旋回、-30度以下なら左旋回、それ以外なら直進
プログラムの大部分は、1.の指定座標の角度を求める計算に費やしている。 角度を求める計算は、下の図のように、tanの逆関数arctanがあれば、 自分と目標のX座標とY座標の差分を得るだけで求めることができる。
しかし残念ながら、CHPにはそんな便利な関数は備わっていない。では、どう すればいいかと言えば、実は以下のような便利な式がある。
これは-90度から90度の範囲で、上のarctanに似た値を返す近似式だ。|x|とは xの絶対値のこと。この近似式の誤差は射撃には使えないほど大きいのだが、 移動に使う分には問題ない。プログラムの1.の部分はこの計算をやっているわ けだ。

注意する必要があるのが座標系の話。上の図は、学校の数学の時間に習うXY座 標系なのだが、CHPで使われているXY座標系は下の図のようにコンピューター で一般的に使われるYの正方向が下向きのものだ。さらに、0度方向はなぜか下 向きだ。なので、上の近似式で得られた角度をこの座標系に応じて変換する必 要がある。

コメント

_ Nuts ― 2007年10月02日 17時03分04秒

nas_Bさんはじめまして。なっつと申します。

第5回2ch大会にエントリーしたジャミングイカに
この記事と同じコンセプトのルーチンを、無い頭を
ひねりつつ組み込んでいたのですが、サンプルと
自分の物とを比較してびっくりしました。
自分のルーチン無駄が多すぎる・・バグあるしorz

次回大会に向けてまたジャミング機体を作ろうと考えて
いるので、参考にさせていただきます。

・・ジャミング対策ではなく、ジャミングを使う側としてになってしまいますが(汗

_ nas_B ― 2007年10月03日 06時39分40秒

Nutsさん、はじめまして。

やたら対空の強いデス・マーチの頃から気にしていたので、
実は初めてな気があまりしなかったりします。^_^;

こんなものでよろしければ使ってあげてくださいませ。
次回作も楽しみにしています。

私もチップ数に余裕があれば常に入れたい気分なのですが、
非ジャミングにとっては使用頻度がそれほど高くないので、
なかなか入れるスペースを確保できなかったりします。(T-T)

_ ニナガワ ― 2007年10月06日 12時28分15秒

こんにちは。
発表当時、この機能を観戦しようとしましたが、ジャミング装備検知付きのヴェロニカ師匠が開幕集中ミサイルを豪快に浴びせて試合終了してしまうので、どうしても闇の中の集合シーンを見られない、という壁にぶつかり、結局見るのを諦めたという思い出があります。(笑)

_ nas_B ― 2007年10月10日 06時51分04秒

ニナガワさん、こんにちは。
もう1年も前のことですね。懐かしいです。
あの頃からジャミング戦術も大幅に多様化していて、
楽しいのはいいのですけれど、対策は大変です。

トラックバック