这是代码,我试图获得旋转角度。我在表盘周围旋转图像。我正在获得所有角度,除非它达到270度时它会做一些时髦的东西。角度变为负值。它工作正常从0到270,但我不能让它显示270到360之间的角度..请给我一些建议
this.rotate = function(x){
this.node.style.MozTransform="rotate("+x+"deg)";
this.node.style.WebkitTransform="rotate("+x+"deg)";
this.node.style.OTransform="rotate("+x+"deg)";
this.node.style.msTransform="rotate("+x+"deg)";
this.node.style.Transform="rotate("+x+"deg)";
myintID = setInterval(function(){
//Math!
angleFromEye = Math.atan2((cursorLocation.y-self.my_y), cursorLocation.x- self.my_x)*(180/Math.PI)+ 90;
//Rotate
self.rotate(angleFromEye);
答案 0 :(得分:0)
实际上角度对于值-90到0也是负的,但是你在角度上加了90,所以你看不到。
只需在角度为负时添加360:
if (angleFromEye < 0) angleFromEye += 360;
答案 1 :(得分:0)
我认为您的问题在于将atan2
的返回值范围转换为您想要的范围。
atan2
以弧度为单位给出角度,在[-pi,pi]
范围内,您希望角度范围为[0,360]
。
您的转换会为您提供[-180+90,180+90] = [-90,270]
范围内的角度。
atan2(...)*(180/Math.PI) + 90
请改为尝试:
atan2(...)*(180/Math.PI) + 180
答案 2 :(得分:0)
我最近创建了一个jQuery插件,它允许您获取元素的旋转,还可以旋转元素。它也适用于ie7和ie8。 这里:http://wp-dreams.com/jquery-element-rotation-plugin/