2016-03-14 70 views
1

我正在尝试计算两个矢量或圆上角度之间的带符号角度。例如,从330到30应该给60(顺时针为正),从30到330应该给-60。我试图实施Finding Signed Angle Between Vectors 中给出的方法。以下是我尝试过的相关代码。二维矢量之间的带符号角度

to-report signed-angle [a1 a2] 
    let v1 list sin a1 cos a1 
    let v2 list sin a2 cos a2 
    let v1x item 0 v1 
    let v1y item 1 v1 
    let v2x item 0 v2 
    let v2y item 0 v2 
    report atan (v1x * v2y - v1y * v2x) (v1x * v2x + v1y * v2y) 
end 

但这代码不给,即使它似乎是对其他语言的批准答案正确的答案。我知道NetLogo角度是0(上)和90(右)。我也尝试使用'atan文档'中描述的方法将角度转换为常规形式,但是这也没有给出正确的答案。另外,我会给每一个环节的每一个滴答声打电话给这位记者,所以如果有人对这种方法如何简化有了想法,我会非常感激。

+1

是否具有的NetLogo的'atan2'功能? – njuffa

回答

3
subtract-headings 30 330 

会给你你问什么说“顺时针为正(对你给的例子)。