基本的三角函数在python中没有正常工作

时间:2015-10-06 21:23:47

标签: python trigonometry

对于一些背景知识,this is the game我试图以等距风格绘制。

我只是试图获得正确的计算,而不是以一种黑客的方式进行,但有一部分不起作用,我对另一部分不太确定(I&# 39;稍后会将其保存为另一个问题。)

所以,忘记中间的小方块,董事会由n lenels组成。我希望能够计算出它们的坐标,这样我就可以对它们进行进一步的计算,但是三角函数不能正常工作,据我所知(请记住我上次做了几年)它应该是。

这是绘制第一个方块的简单代码:

import turtle
import math

iso_angle = 20
grid_length = 100

turtle.right(iso_angle)
turtle.forward(grid_length)
turtle.right(180 - iso_angle * 2)
turtle.forward(grid_length)
turtle.right(iso_angle * 2)
turtle.forward(grid_length)
turtle.right(180 - iso_angle * 2)
turtle.forward(grid_length)

使用sohcahtoa,我想我能够计算出所得方块的宽度和高度,因为它有效地由4个三角形组成,我可以将其中一个三角形的高度加倍

#s = o / h
#sin(iso_angle) = o / grid_length
#o = sin(iso_angle) * grid_length

height = 2 * sin(iso_angle) * grid_length
width = 2 * cos(iso_angle) * grid_length

然而,当我将海龟向下移动height时,它并没有落在广场的边缘。它甚至不会移动到边缘距离的倍数,它似乎最终会有一些随机距离。宽度交换也不起作用。

我的错在哪里?

2 个答案:

答案 0 :(得分:1)

如评论中所述,您需要转换为弧度,可以使用

完成
List<Truck> toyotaTrucks = Automobile.GetByManufacturer(trucks, mfr).ToList();

功能。所以在实践中你会以

之类的结尾
math.radians()

答案 1 :(得分:1)

光标模块(龟)采用度数角度。

sin()和cos()数学函数以弧度为单位。你必须转换它们。 Fortunetly,Python在 math 模块中包含了方便的功能:

height = 2 * sin(radians(iso_angle)) * grid_length

希望这有帮助。