C-Styleでコンパス活用

以前の向き(例えばスタート時)を基準(=0度)とみなし、相対的に今の向きを表現するには、「(今の向き計測値)−(以前の向き計測値)」という計算を考える。

コンパスセンサの計測値は北を0度として、時計回りに0〜359度で表現される。

(今の向き計測値)>(以前の向き計測値)の場合は上の引き算の答えは正の値になるが、逆の場合(例:今が10度で以前が350度の場合)は負の値になり(例の場合:−340度)都合が悪いので、今の向きに360度を足してから引き算する。(例の場合:10+360−350=20度)。

まが、今の向きに360度を足した時、(今の向き計測値)>(以前の向き計測値)の場合の引き算の答えは360度超える(例:今が30度で以前が20度の場合、(30+360−20=370度)が、360の剰余(割った余り 例の場合:370÷360=1余り10度)を計算すれば、都度if文で360以上かどうかを判断する必要がない。剰余はC-Styleでは演算子「%」で計算できる。