2015-01-29 2 views
-1

У меня есть переменная (число), которая может охватывать от -180 до 180.JS - номер круговой ссылки

Есть ли способ я могу создать циклическую ссылку так, что когда переменная 180 || -180
будет равноудалена от 90 и -90?


Мой код сейчас довольно сложный, и я еще не установил ручку;
, но в основном я вращаю куб по оси Y, и если задняя часть куба установлена ​​в положение rotateY (180deg), чтобы она достигла левой стороны (она установлена ​​на rotateY (-90deg)), она пройдет через правую сторону, (установлено на rotateY (90deg)), спереди (установлено на rotateY (0deg)) ....

И так как он должен работать в обоих направлениях, я не могу установить его ни на -180 ;


РЕДАКТИРОВАТЬ 1

I posted a pen; надеюсь, глядя на пример, вы можете понять, что я имею в виду;

+0

0 написать отзыв – Alternatex

+0

Добавьте код, который вы пробовали сами –

+0

Что вы хотите сказать? Только '0' равноудален от' 90' и '-90'. – Oriol

ответ

0

Я предполагаю, что вы специально работаете с углами по кругу, в градусах. Вы можете написать функцию distance, которая вычисляет самый короткий угол между двумя углами, как по часовой стрелке, так и против часовой стрелки. Затем вы можете использовать его для подтверждения того, является ли один угол равным двум другим углам.

function distance(a,b){ 
    var diff = Math.abs(b - a) % 360; 
    if (diff > 180){diff = 360 - diff;} 
    return diff; 
} 

distance(359,0);       #result: 1 
distance(-180,180);       #result: 0 
distance(90, -180) == distance(-90, -180); #result: true 
distance(90, 180) == distance(-90, 180); #result: true 
+0

, так как браузер вычисляет, который является самым коротким углом, возможно, лучшим решением является создание функции, которая меняет степень происхождения прямо перед преобразованием (в зависимости от направления) – maioman

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