オフセットを求める

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

オフセットを求める

投稿記事 by ISLe » 14年前

処理系に依存せずオフセットを求めるコードです。

CODE:

int dividend; /* 被除数 */
int divisor;  /* 除数 ※2以上の正の数 */

if (dividend < 0) {
	dividend = -(dividend + 1);
	dividend %= divisor;
	dividend = divisor - 1 - dividend;
} else {
	dividend %= divisor;
}
タイルマップ(チップマップ)のワールド座標を求めるときなどに使えます。
自分は固定小数点数三角関数ライブラリで角度を丸めるのにも使ってます。
divisorが2の累乗の定数のときは最適化が期待できるのでC/C++ではインライン展開されるように実装すると良いと思います。

タイルマップ座標のオフセットを求める(ISLeのビデオゲーム工房)

コメントはまだありません。