Что такое поворот, который дает горизонтальный и вертикальный переворот? - PullRequest
0 голосов
/ 09 марта 2012

Учитывая эту единицу окружности (градусы):

enter image description here

Каким был бы код для функций, которые поворачивали бы изображение, чтобы перевернуть его по горизонтали и вертикали?

Например,

  • FlipHorizontal (315) = 225,
  • FlipHorizontal (45) = 135,
  • FlipVertical (315) = 45,
  • FlipVertical (135) = 225.

Ответы [ 3 ]

1 голос
/ 09 марта 2012

добавить 180, по модулю 360. поэтому добавьте 180 и вычтите 360, если оно больше 360.

angle += 180;
if (angle > 360) angle -= 360;
0 голосов
/ 09 марта 2012
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));
}
0 голосов
/ 09 марта 2012

например:

если вы хотите FlipHorizontal (315) = 225, вам нужно сделать что-то вроде этого:

1) alpha> Pi?

2) если да, ваше преобразование будет 2Pi - альфа -> Pi + альфа, где 2Pi - альфа = 315.

3) если нет, ваше преобразование будет альфа -> Pi- альфа, где альфа = 45.

Решите эту задачу как математическую задачу

...