已知任意三角形三边 如何求夹角 vb写法

已知任意三角形三边 如何求夹角 :
A
/\
/ \
/ \
B /______\C

如∠ABC 已知 AB=50.23 BC=20.56 AC=30.5

'cosA=(b^2+c^2-a^2)/2bc;
'cosB=(a^2+c^2-b^2)/2ac;
'cosC=(a^2+b^2-c^2)/2ab

这个公式在VB中要怎么样写才能算出角度呢

边: a = 20.56 ,b = 30.5, c = 50.23
以A角为例:

cos(A) = (b^2+c^2-a^2)/2bc
= (30.5*30.5+50.23*50.23-20.56*20.56)/(2*30.5*50.23)

cos(A) = 0.989086040280284

VB: Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 1.5708

A = 0.147881123284037 '弧度

角度: 0.147881123284037 * 45 / Atn(1) = 8.47296423382913
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-13
Private Sub Command1_Click()
'cosA=(b^2£«c^2£­a^2)/2bc£»
'cosB=(a^2£«c^2£­b^2)/2ac£»
'cosC=(a^2£«b^2£­c^2)/2ab
Dim a As Single, b As Single, c As Single
Dim cA As Single, cB As Single, cC As Single
Dim rA As Single, rB As Single, rC As Single
a = InputBox("a=")
b = InputBox("b=")
c = InputBox("c=")
If a + b < c Or b + c < a Or c + a < b Then MsgBox "a,b,c Fault!": Exit Sub
cA = (b * b + c * c - a * a) / (2 * b * c)
cB = (a * a + c * c - b * b) / (2 * a * c)
rA = Abs(Atn(Sqr(1 - cA * cA) / cA) * 180 / 3.14159265)
rB = Abs(Atn(Sqr(1 - cB * cB) / cB) * 180 / 3.14159265)
rC = 180 - rA - rB
Print "A=" & rA
Print "B=" & rB
Print "C=" & rC
End Sub
第2个回答  2009-03-13
先拉一个按钮和3个文本用来输入3边
然后输入以下代码:

dim cosa as singel
dim cosb as singel
dim cosc as singel
dim a as singel
dim b as singel
dim c as singel
command 事件
a=text1.text
b=text2.text
c=text3.text
cosa=(b^2+c^2-a^2)/2bc
cosb=(a^2+c^2-b^2)/2ac
cosc=(a^2+b^2-c^2)/2ab

然后用label显示答案或者直接用print显示
比如用label就是label1.caption= cosa
用print就是 print cosa
相似回答