弧度有时会翻转/反转

时间:2014-09-24 15:54:44

标签: javascript radians

我有一个应该找到两个弧度中间的函数

function mrad(rb,ra){return (rb+ra)/2;}

但有时当我用Math.sin和Math.cos绘制x和y时,两个指定长度的新坐标出现在我想要的极性对立面上。

例如

;如果我期望新点向下和向右,有时它们会向上和向左出现。 除此之外坐标是正确的!

以下是我如何绘制新的x和y

xnew=xold-(100)*Math.cos(radian);
xnew=yold+(100)*Math.sin(radian);

我猜测如果弧度B(rb)大于ra则可能很重要。我认为正在发生的事情是,在这种情况下,我正在全力以赴,而我有时应该做一些像

这样的事情。
 function mrad(rb,ra){return (rb-ra)/2;}

我的问题是

  1. 我的假设是否正确?

  2. 条件是什么,怎么知道何时做 rb-ra vs rb + ra ,或者说更好,你怎么说如果一个弧度指向另一个弧度或低于另一个?

  3. 看起来应该是这样的

    function mrad(rb,ra){return ((/*condition*/)?(rb-ra):(rb-ra))/2;}
    

    修改

    要查找范围,我试图表达不同的值以找到弧度范围,但找不到任何超过对角线的范围

    http://jsfiddle.net/roLLqfs6/

    定义的长度也不总是100,因为它在示例

    中写入

1 个答案:

答案 0 :(得分:0)

这真的是一个数学问题。你需要确保你的角度在同一范围内(-pi ... pi0 ... 2.0 * pi),但即使这样,取其平均值也不一定能找到你想要的角度 - 你可能期望(以度为单位,为简单起见)你想要的10º& 20º是15º,但你对175º和-175º的期望是什么?我怀疑你会想要180º(因为这是它们之间的小弧度),但你会得到0º。

所以,你需要测试差异,看看它们相差小于180º(pi弧度),如果不是,则相应地修改答案。