2017-09-27 9 views
0

私は三角形の2つの脚を与えられていますが、3つ目はPythagorasを使って計算された後、私は三角形の角度を見つけなければなりませんでした。3つの脚を持つ角度三角形を計算する

角度を見つけるためにcosinus-formulaを試しましたが、動作しません。私は希望の結果を得ていません。

コード:

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はサイドをラジアンで返します。したがって、これを60進数に変換する必要があります。このためには、180/πを掛ける必要があります。内角の合計が180なので、第3の角度は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) 
を使用していない理由はわかりません210

(Aはaとは逆の角度です)。

なぜ私に100を掛けているのか分かりません。ラジアンから度に変換するには、180/πを掛けます。

最後に、360ではなく、三角形の角度の合計が180になります。それをまとめる:

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 
関連する問題