根据我的理解,你这是给了两个坐标,求这个向量和水平线的角度么?
其实就是一个数学问题吧?
function angle(start,end){var diff_x = endx - startx,
diff_y = endy - starty;
//返回角度,不是弧度
return 360Mathatan(diff_y/diff_x)/(2MathPI);
}
那么执行
angle({x:0,y:0},{x:1,y:1})就会返回45(度)
rotate是jQuery旋转rotate插件,支持Internet Explorer 60+ 、Firefox 20 、Safari 3 、Opera 9 、Google Chrome,高级浏览器下使用Transform,低版本ie使用VML实现。
rotate(angle)angle参数:[Number] – 默认为 0
根据给定的角度旋转例如:$(“#img”)rotate(45);或 $(‘#img’)rotate({angle:45})
rotate(parameters)parameters参数:[Object] 包含旋转参数的对象。
支持的属性:
1angle属性:[Number] – default 0 – 旋转的角度数,并且立即执行
例如:1$(“#img”)rotate({angle:45});2bind属性:[Object] 对象,包含绑定到一个旋转对象的事件。事件内部的$(this)指向旋转对象-这样可以在内部链式调用- $(this)rotate(…)。
例如 (click on arrow):$(“#img”)rotate({bind:{
click: function(){
$(this)rotate({
angle: 0,
animateTo:180
})
}
}
});
3animateTo属性:[Number] – default 0 – 从当前角度值动画旋转到给定的角度值 (或给定的角度参数)
4duration属性:[Number] – 指定使用animateTo的动画执行持续时间
例如 (click on arrow):$(“#img”)rotate({bind:{
click: function(){
$(this)rotate({
duration:6000,
angle: 0,
animateTo:100
})
}
}
});
5 step属性:[Function] – 每个动画步骤中执行的回调函数,当前角度值作为该函数的第一个参数
6 easing属性:[Function] – 默认 (see below)
默认:function (x, t, b, c, d) { return -c ((t=t/d-1)ttt - 1) + b; }
Where:
t: current time,
b: begInnIng value,
c: change In value,
d: duration,
x: unused
没有渐变:No easing (linear easing):function(x, t, b, c, d) { return (t/d)c ; }
示例1:没有效果,一直转
$("#scImg")rotate({
angle:0,
animateTo:360,
callback: rotation,
easing: function (x,t,b,c,d){
return (t/d)c ;
}
});
示例2: 默认的效果
$("#scImg")rotate({
angle:0,
animateTo:360,
callback: rotation,
easing: function (x,t,b,c,d){
return -c((t=t/d-1)ttt-1)+b ;
}
});示例3:
$(“#img”)rotate({bind:{
click: function(){
$(this)rotate({
angle: 0,
animateTo:180,
easing: $easingeaseInOutElastic
})
}
}
});
7callback属性:[Function] 动画完成时执行的回调函数
例如
$(“#img”)rotate({bind:{click: function(){
$(this)rotate({
angle: 0,
animateTo:180,
callback: function(){ alert(1) }
})
}
}
});
8 getRotateAngle这个函数只是简单地返回旋转对象当前的角度。
例如:$(“#img”)rotate({
angle: 45,
bind: {
click : function(){
alert($(this)getRotateAngle());
}
}
});
9stopRotate这个函数只是简单地停止正在进行的旋转动画。例如:
$(“#img”)rotate({bind: {
click: function(){
$(“#img”)rotate({
angle: 0,
animateTo: 180,
duration: 6000
});
setTimeout(function(){
$(“#img”)stopRotate();
}, 1000);
}
}
});
这是数学题啊
Rotate = function(Source,Angle)//Angle为正时逆时针转动, 单位为弧度{
var A,R;
A = Mathatan2(SourceY,SourceX)//atan2自带坐标系识别, 注意X,Y的顺序
A += Angle//旋转
R = Mathsqrt(SourceX SourceX + SourceY SourceY)//半径
return {
X : Mathcos(A) R,
Y : Mathsin(A) R
}
}
Rotate({X : 0,Y : 4},-MathPI / 4)
注意, 由於牵扯浮点运算, 所以你如果调用
Rotate({X : 0,Y : 4},MathPI / 2)
返回可能会是{X: -4, Y: 4898425415289509e-16}
Y很小但不等於0
当然如果用矩阵变换也是可以写的
这是CSS3里面的属性,
以中心为圆点旋转:transform-origin:center 0px;
旋转角度:transform:rotate(360deg);
顺时针旋转角度;
旋转角度可以写在js代码里,点击旋转或者加载页面旋转都行
以上就是关于js如何计算A(x1,y1)和B(x2,y2)的角度全部的内容,包括:js如何计算A(x1,y1)和B(x2,y2)的角度、jquery.rotate.js库中的rotate函数怎么用。、求大神js代码 知道A点的坐标,绕着O(原点)旋转任意角度求出旋转后的B坐标。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)