对于一些背景知识,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
时,它并没有落在广场的边缘。它甚至不会移动到边缘距离的倍数,它似乎最终会有一些随机距离。宽度交换也不起作用。
我的错在哪里?
答案 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
希望这有帮助。