2010-07-08 2 views
2

Мне нужно получить дополнение угла.«Зеркалирование» угол

Точно, что мне нужно сделать, это реализовать какой-то код, отражающий угол, скажем, у меня есть 45 градусов -> 135, другой пример: 80 -> 100, 0 градусов -> 180 и т. Д. ,

Решено: я реализовал это только мгновение назад, и она работала отлично, я использую 180 - угол, если угол < 180, и 360 - угол, если угол> = 180.

+1

Вы имеете в виду 80 -> 100? – quantumSoup

+0

Да :) 6 еще идти. – Artemix

ответ

5

Я думаю, что вы после 180 - yourAngle ,

Ваши примеры:

  • 45 градусов: 180 - 45 = 135
  • 80 градусов: 180 - 80 = 100
  • 0 градусов: 180 - 0 = 180
+0

Да, это сработало нормально, но, что, если мой угол 225 ?, если я это сделаю, тогда я получу 180 - 225 = -45, и я должен получить 135. Возможно, мне следует использовать 360-угол, если мой угол is> 180. – Artemix

+0

@Artemix: нормализовать угол между 0 и 180 (добавлением/вычитанием 180 до тех пор, пока вы не достигнете [0, 180)) –

+0

Да, я это знаю, но я спрашиваю, правильно ли я прав Я делаю 360 - myAngle, когда myAngle> 180. – Artemix

2

Самый простой ответ, основанный на том, что вы, кажется, спрашивать о том,

angle2 = 180 - angle1 
1

Если вы смотрите на «угол» как 2D вектор в плоскости, вы просто изменить знак компонента, нормального к «зеркальной» плоскости.

Так, например, угол 45 градусов (1, 1), «зеркальный» в плоскости yz, становится (-1, 1).

+0

Да, это было ТОЧНО, что я думал в первую очередь, но когда я попытался сделать это в коде, я нашел некоторые проблемы. Дело в том, что я не нашел способ «восстановить» угол, используя новые компоненты. – Artemix

+0

Отправьте свой код, потому что это точно верно. Проблема была в вашем коде. – duffymo

+0

Если вы приняли ответ, почему бы не проголосовать за него? – duffymo

Смежные вопросы