2017-09-27 172 views
0

我有兩條腿給出了三角形,在使用畢達哥拉斯算出第三條腿之後,我必須找到三角形的角度,以便能夠使用海龜在Python中繪製三角形。計算具有三條腿的角三角形

我已經嘗試了cosinus公式來找到角度,但它不工作。我沒有得到想要的結果。

代碼:

import math 
import turtle 

#Legs 
a = 70 
b = 60 

c_pwr = a**2 + b**2 
c = math.sqrt(c_pwr) 

print("Langste zijde is: ", c) 

#Angles 
A = math.acos((b**2 + c**2 - a**2)/(2 * b * c)) * 100 
B = math.acos((c**2 + a**2 - b**2)/(2 * c * a)) * 100 
C = 360 - A - B 

print(A, " ", B, " ", C) 

turtle.forward(a) 
turtle.right(B) 
turtle.forward(b) 
turtle.right(A) 
turtle.forward(c) 

input() 

什麼我做錯了,如何解決呢?謝謝!

+0

我假設它是一個直角三角形與邊70和60? – SwiftsNamesake

+0

@SwiftsNamesake是的,這是正確的 –

+0

math.acos返回弧度值,它看起來像你用它們作爲度。另外,三角形中只有180度。 –

回答

3

acos以弧度返回一側,所以您必須將其轉換爲六十進制度數,因此您必須乘以180/π。我們也知道內角的總和是180,所以第三個角度是180-A-B

另一個問題是,必須傳遞到繪製,通過默認從右側圖向左前進到角度,則必須旋轉180-A,預先C,旋轉180-B和快進B

a = 70 
b = 60 

c_pwr = a**2 + b**2 
c = math.sqrt(c_pwr) 

print("Langste zijde is: ", c) 

#Angles 
A = math.acos((b**2 + c**2 - a**2)/(2 * b * c))*180/math.pi 
B = math.acos((c**2 + a**2 - b**2)/(2 * c * a))*180/math.pi 

C = 180 - A - B 

print(A, " ", B, " ", C) 

turtle.forward(a) 
turtle.right(180-B) 
turtle.forward(c) 
turtle.right(180-A) 
turtle.forward(b) 

輸出:

enter image description here

2

我不知道爲什麼你不使用的定義

A = asin(a/c) 

(A是與a相反的角度)。我不明白你爲什麼乘以100。要將弧度轉換爲度數,您需要乘以180/π

最後,三角形中的角度總和爲180而不是360。把它放在一起:

import math 

# Legs 
a = 70 
b = 60 
c = math.sqrt(a**2 + b**2) 

# Angles 
A = math.asin(a/c) * 180/math.pi 
B = math.asin(b/c) * 180/math.pi 
C = 180 - A - B