Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python——使用嵌套列表的海龟图形。我如何解决这个问题?_Python_List_Nested Lists_Turtle Graphics - Fatal编程技术网

Python——使用嵌套列表的海龟图形。我如何解决这个问题?

Python——使用嵌套列表的海龟图形。我如何解决这个问题?,python,list,nested-lists,turtle-graphics,Python,List,Nested Lists,Turtle Graphics,我有一个嵌套列表,如下所示: data_set_07 = [['A', 1, 3, 'S'], ['A', 2, 3, 'S'], ['A', 3, 1, 'S'], ['A', 3, 0, 'S'], ['A', 5, 2, 'S'], ['A', 5, 3, 'S'], ['B', 0, 0, 'S'], ['B', 0, 2, 'S'], ['C', 3, 2, 'S'], ['C', 4, 0, '

我有一个嵌套列表,如下所示:

data_set_07 = [['A', 1, 3, 'S'], ['A', 2, 3, 'S'], ['A', 3, 1, 'S'],
               ['A', 3, 0, 'S'], ['A', 5, 2, 'S'], ['A', 5, 3, 'S'],
               ['B', 0, 0, 'S'], ['B', 0, 2, 'S'],
               ['C', 3, 2, 'S'], ['C', 4, 0, 'S'],
               ['D', 1, 0, 'S']]
'A'
'B'
'C'
'D'
均为尺寸参考(1x1、1x2、2x2等)。 数字是指图形上的特定列和行,
'S'
代表“南”(如中所示,图标应朝南)

我已经在python上使用turtle图形绘制了4个不同的图标,我需要在这些不同的设置中在图形上绘制每个图标(一些图标比其他图标小,并且位于不同的位置,但都特定于列表中的上述数字)

我需要知道的是,我该如何处理我的代码,以添加
数据集\u 07
,从而使我的图标在图形上处于正确的位置,而不仅仅是默认位置

数据集\u 07一起使用的我的一个图标:

def NBC(data_set):
    pu()
    color('yellow')
    begin_fill()
    setheading(183)
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()
    left(5)
    fd(5)

    left(173)
    pd()
    color('orange')
    begin_fill()
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()
    left(5)

    left(173)
    pd()
    color('red')
    begin_fill()
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()
    setheading(90)
    right(170)

    left(168)
    pd()
    color('purple')
    begin_fill()
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()

    left(179)
    pd()
    color('blue')
    begin_fill()
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()

    left(180)
    pd()
    color('green')
    begin_fill()
    pd()
    fd(150)

    circle(-40, 190)
    right(19)
    fd(165)
    end_fill()
    pu()


NBC(data_set_07)

看起来您的图标总是以相同的大小绘制。如果你想根据尺寸改变大小,我认为,你必须参数化你的图标功能。差不多

def NBC(height, width, x, y)
然后您必须添加代码以移动到(x,y)开始。我已经很多年没有看过海龟图形了,所以我不能说这是什么确切的命令。之后,你必须根据高度和宽度来调整你的动作。(高度和宽度可以是默认大小的倍数,因此,高度=1,宽度=1表示以默认大小绘制,高度=1,宽度=2表示以默认高度绘制,但使宽度加倍。)

如果您真的想这样更改纵横比,您可能不喜欢结果。您还必须更改标题。只需要一点三角法就可以算出角度应该是多少。如果原始标题是θ,那么新标题将是θ

arctan(宽度*tan(θ)/高度)

如果我没有犯错误。通过将方向作为参数传递,也可以使徽标面向不同的方向。如果默认方向是“E”,那么您可以定义一个dict,比如

angle={E':0,'N':90,'W':180,'S':270}

将所需方向作为参数φ传递,并将角度φ添加到所有标题


我建议你不要一下子把这一切都搞定。首先,将徽标移动到不同的位置。然后在纵横比不变的地方进行缩放(宽度=高度)。然后改变方向。最后,如果您真的愿意,请尝试更改纵横比。

看起来您的图标将始终以相同的大小绘制。如果你想根据尺寸改变大小,我认为,你必须参数化你的图标功能。差不多

def NBC(height, width, x, y)
然后您必须添加代码以移动到(x,y)开始。我已经很多年没有看过海龟图形了,所以我不能说这是什么确切的命令。之后,你必须根据高度和宽度来调整你的动作。(高度和宽度可以是默认大小的倍数,因此,高度=1,宽度=1表示以默认大小绘制,高度=1,宽度=2表示以默认高度绘制,但使宽度加倍。)

如果您真的想这样更改纵横比,您可能不喜欢结果。您还必须更改标题。只需要一点三角法就可以算出角度应该是多少。如果原始标题是θ,那么新标题将是θ

arctan(宽度*tan(θ)/高度)

如果我没有犯错误。通过将方向作为参数传递,也可以使徽标面向不同的方向。如果默认方向是“E”,那么您可以定义一个dict,比如

angle={E':0,'N':90,'W':180,'S':270}

将所需方向作为参数φ传递,并将角度φ添加到所有标题

我建议你不要一下子把这一切都搞定。首先,将徽标移动到不同的位置。然后在纵横比不变的地方进行缩放(宽度=高度)。然后改变方向。最后,如果您真的想更改纵横比,请尝试更改纵横比