<p>您的输入以度为单位,正弦波和余弦以弧度为单位。所以你需要写:</p>
<pre><code>horizontal = i[0] * cos( radians(i[1]) )
vertical = i[0] * sin( radians(i[1]) )
</code></pre>
<p>这两条线没有意义:</p>
<pre><code>horiztonal_total = radians(horizontal_total)
vertical_total = radians(vertical_total)
</code></pre>
<p>总而言之</p>
<pre><code>def find_net_force(forces):
horizontal_total = 0
vertical_total = 0
for i in forces:
horizontal = i[0] * cos( radians(i[1]) )
vertical = i[0] * sin( radians(i[1]) )
horizontal_total += horizontal
vertical_total += vertical
total_magnitude = sqrt(horizontal_total ** 2 + vertical_total ** 2)
#horiztonal_total = radians(horizontal_total)
#vertical_total = radians(vertical_total)
total_angle = atan2(vertical_total, horizontal_total)
total_angle = degrees(total_angle)
total_magnitude = round(total_magnitude, 1)
total_angle = round(total_angle, 1)
force = (total_magnitude, total_angle)
return force
forces = [(10, 90), (10, -90), (100, 45), (20, 180)]
print(find_net_force(forces))
</code></pre>
<p>输出</p>
<pre><code>(87.0, 54.4)
</code></pre>