我正在尝试计算三点之间的角度,我需要使用切线函数tan()
。奇怪的是VBA返回错误的值。
例如:
tan(209)= 0.554309051
但是在VBA中:
tan(209)= -.696695985548265
我的朋友告诉我有关“正常化”的事情。但我不明白他在说什么,怎么做。为什么会这样?
答案 0 :(得分:4)
根据this VBA使用弧度。 将度数转换为弧度,(度* 2 * pi)/ 360
tan((209 * 2 * 3.14)/360)
答案 1 :(得分:1)
(如果使用TAN是否正确则不解决):
也许你的细胞以某种特殊的方式形成,它正在改变价值。 在Excel 2007中,工作表函数和VBA都为 tan(209)返回 -11.8641847236695 。这与上面的内容不同。
答案 2 :(得分:0)
除了混淆弧度和度数之外,我认为您可能会混淆tangent和arctangent。
在评论中,您说您拨打Tan
,如下所示:Math.Tan((A(2) - B(2)) / (B(1) - A(1)))
。这是为切线提供角度参数的非常非典型的方法!在另一个评论中,你暗示你希望这给你一个角度(编辑:或“弧度”)。但切线不会给你一个角度或“弧度”!
我无法相信没有其他人指出这一点。这位物理学家感到愤怒。
基于此,我相信你真正想要的是反正切的,即Math.Atn((A(2) - B(2)) / (B(1) - A(1)))
。当提供相对于相邻边的相对长度比时,这将给出一个角度(以弧度表示)。
当然,上面的内容很大程度上是推测性的,因为我不知道你到底想要完成什么,但是从我可以从你的问题和评论中散布的一些隐含信息中梳理出来,这的确是什么我会把钱花在上面。
答案 3 :(得分:0)
看起来VB就像Excel一样,假设Tangent的输入值是弧度。如果它不是弧度,则需要将角度转换为弧度。
在Excel中,您必须使用RADIANS()函数将数据从角度转换为弧度。使用DEGREES()函数转换回来。