【发布时间】:2014-09-25 16:57:27
【问题描述】:
我在这里编写了这段代码:
double cosine = (v1.x*v2.x+v1.y*v2.y)/(150*150);
double radian = Math.acos(cosine);
double angle = Math.toDegrees(radian);
V1 和 V2 是两个向量,它们是简单的 Point(s)() 以保持简单。现在我计算。它们之间的角度,效果很好。但是超过180度。 ,它又回到 179,178 ......但我想要 360°。
问题是例如弧度不会变成负数,所以我可以把它放在一个 if-Segment 中......
感谢您的建议。
【问题讨论】:
-
这似乎更像是一个数学问题而不是编码问题。你会怎么用纸和铅笔做这个?
-
是的,我认为这也是一道数学题。我编码的方式就是我在纸上写的方式(我是这样学的)。似乎开始的线只是给了我更小的角度。
-
acos 总是返回前两个象限的值。您必须根据顶点确定您所在的象限,然后相应地调整结果。