Что такое поворот, который дает горизонтальный и вертикальный переворот?
С учетом этого единичного круга (градусы):
Каким будет код для функций, которые будут поворачивать изображение, чтобы перевернуть его по горизонтали и вертикали?
Например,
- FlipHorizontal (315) = 225,
- FlipHorizontal (45) = 135,
- FlipVertical (315) = 45,
- FlipVertical (135) = 225.
3 ответа
Добавьте 180, по модулю 360. поэтому добавьте 180 и вычтите 360, если оно больше 360.
angle += 180;
if (angle > 360) angle -= 360;
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));
}
Например:
если вы хотите FlipHorizontal(315) = 225, вам нужно сделать что-то вроде этого:
1) альфа> пи?
2) если да, то ваше преобразование будет 2Pi - alpha -> Pi + alpha, где 2Pi - alpha = 315.
3) если нет, то ваше преобразование будет альфа -> пи - альфа, где альфа = 45.
Решите эту задачу как математическую задачу