この単位円 (度) を考えると:
画像を回転させて水平方向と垂直方向に反転させる関数のコードは何でしょうか?
例えば、
- FlipHorizontal(315) = 225,
- FlipHorizontal(45) = 135,
- FlipVertical(315) = 45、
- FlipVertical(135) = 225.
180を加算し、360を法とします。したがって、180を加算し、360より大きい場合は360を減算します。
angle += 180;
if (angle > 360) angle -= 360;
例えば:
FlipHorizontal(315) = 225 にしたい場合は、次のようにする必要があります。
1) アルファ > パイ?
2) はいの場合、変換は 2Pi - alpha -> Pi + alpha になります。ここで、2Pi - alpha = 315 です。
3) いいえの場合、変換は alpha -> Pi - alpha になります。ここで、alpha = 45 です。
このタスクを数学のタスクのように解決する
vflip(a)
{
return 360-a;
}
hflip(a)
{
if (a > 180)
return 540 - a;
else
return 180 - a;
}
flipboth(a)
{
return 360 - ((a>180)?540 - a:180 - a);
//aka
//return vflip(hflip(a));
}