该功能已经告诉你它做了什么,但无论如何,它包装角度并确保它在0-360之间。这是Javascript:
Number.prototype.wrapAngle = function(){
var d = this;
while(d > 360){ d -= 360;};
while(d < 0){ d += 360;};
return d.toString();
}
我需要'wrapAngle'尽可能快!
答案 0 :(得分:3)
为什么不使用modulo?
-721 % 360; // -1
390 % 360; // 30
90 % 360; // 90
所以:
Number.prototype.wrapAngle = function(){
var d = this % 360;
if (d < 0) { // ensure positive number.
d += 360;
}
// return a number, not a string.
// This is a math based transformation of a number, so it should be a number.
return d;
}
由于模数可以返回一个负数,但是该数字总是接近零而不是-360
如果它是负数,你可以简单地将它增加一次。 / p>
答案 1 :(得分:1)
使用模数运算符。
Number.prototype.wrapAngle = function(){
return (this % 360).toString();
}