jQuery三角函数?

3
我需要计算由两组点确定的矩形所形成的直角三角形的相邻角度。我的计划是使用offset()在两个元素上获取绝对位置坐标,然后从这个暗示框的左下角确定内部角度,以便我可以使用css旋转来旋转一个薄矩形元素。
可能吗?
唯一我不知道如何立即完成的部分是三角函数语法,以及我是否需要外部库进行计算。
*注意:我理解css旋转将围绕元素中心旋转,因此我需要移动矩形以进行补偿。
2个回答

9
答案不在jQuery中,而在JavaScript中。JavaScript有一个Math对象,其中包含sincostan和其他三角函数和与数学相关的内容。
例如,要计算45度的正弦值:
var degrees=45;
var radians=degrees*Math.PI/180;
var sine=Math.sin(radians);
alert("sin("+degrees+" deg) is roughly equal to "+sine);

嗯,但是,我们难道不能使用jQuery的某种方式来完成这个任务吗? - BlueRaja - Danny Pflughoeft
@BlueRaja:当然可以!只需执行以下操作:jQuery.each([['sin', 'sine'], ['cos', 'cosine'], ['tan', 'tangent'], ['PI', 'pi']], function(index, names) { jQuery[names[1]]=Math[names[0]]; });,Ta-da!现在你可以使用 $ .sine,而不是那个丑陋的sin Math.sin了。我的意思是,有谁会冒失使用Math,当你可以把它全部塞进jQuery中呢? - icktoofay
@icktoofay - 如果我需要找到角度怎么办?我可以用勾股定理求出斜边,然后有足够的已知两条直角边来计算正弦/余弦。 - C_K
@Jason:如果你知道对边和邻边,想要求角度,可以使用 atan2 - BlueRaja - Danny Pflughoeft
@BlueRaja - 我不太理解atan代表什么,以及如何使用它。不过它看起来是一个很好的简单函数,我很乐意利用它。 - C_K
@Jason:它是“tan”的倒数。给定一个角度,“tan”会给出相对和邻边之间的比率。给定相对和邻边之间的比率,“atan”会给出角度。“atan2”也是这样做的,但你要像这样调用它:“atan2(y, x)”而不是这样:“atan(y/x)”。请参见动机了解其背后的原因。 - BlueRaja - Danny Pflughoeft

0
如果您计划使用旋转、创建圆形、创建线条、绘制图表等功能进行一些真正的图形工作,可以尝试使用Raphael Graphics库来进行jquery/javascript编程。

http://raphaeljs.com/reference.html

它提供了许多标准函数来完成任务,这将帮助您更快、更高效地完成工作,而不是专注于像旋转线的点之类的事情。

例如,Raphael 中有一个旋转函数,可以让您按特定角度顺时针旋转任何对象。还有平移、缩放等功能。

它也支持 SVG 图形。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接