首页 > 编程问答 >在python中使用turtle绘制图案(带点)

在python中使用turtle绘制图案(带点)

时间:2024-07-30 04:57:30浏览次数:13  
标签:python design-patterns graphics turtle-graphics dot

我正在尝试使用 python 中的海龟制作一幅赫斯特画(点图案)。我设法实现了它。 Hirst_painting_dot_pattern 但是我的 for 循环没有按照我预期的方式工作。它省略了最后一次迭代。

在下面的代码中,我的 for 循环没有生成最后一个点。因此,我在循环末尾添加了一行来制作最后一个点。但我不明白为什么最后一个点没有绘制,尽管它在范围内。有人能给我解释一下吗?

import turtle as t
import random
tim = t.Turtle()
screen = t.Screen()
color_list = [(202, 164, 110), (240, 245, 241), (236, 239, 243), (149, 75, 50), (222, 201, 136), (53,    93, 123), (170, 154, 41), (138, 31, 20), (134, 163, 184), (197, 92, 73), (47, 121, 86), (73, 43, 35), (145, 178, 149), (14, 98, 70), (232, 176, 165), (160, 142, 158), (54, 45, 50), (101, 75, 77), (183, 205, 171), (36, 60, 74), (19, 86, 89), (82, 148, 129), (147, 17, 19), (27, 68, 102), (12, 70, 64), (107, 127, 153), (176, 192, 208), (168, 99, 102)]
t.colormode(255)
tim.speed("fastest")
tim.penup()
tim.setpos(-200, -200)
tim.pendown()
x = -200
y = -200
for yax in range(10):
    for xax in range(10):
        tim.pendown()
        tim.dot(20, random.choice(color_list))
        tim.penup()
        tim.setpos(x, y)
        x += 50
    y += 50
    x = -200
tim.dot(20, random.choice(color_list))
tim.hideturtle()

screen.exitonclick()

的 for 循环工作正常,并没有跳过最后一次迭代。问题在于是在放置点 之后 推进海龟的位置。因此,在最后一次迭代中,放置点,但海龟会移动到尚未放置点的下一个位置。

可以通过在循环 之前 而不是 之后 移动海龟来解决此问题:

import turtle as t
import random
tim = t.Turtle()
screen = t.Screen()
color_list = [(202, 164, 110), (240, 245, 241), (236, 239, 243), (149, 75, 50), (222, 201, 136), (53,    93, 123), (170, 154, 41), (138, 31, 20), (134, 163, 184), (197, 92, 73), (47, 121, 86), (73, 43, 35), (145, 178, 149), (14, 98, 70), (232, 176, 165), (160, 142, 158), (54, 45, 50), (101, 75, 77), (183, 205, 171), (36, 60, 74), (19, 86, 89), (82, 148, 129), (147, 17, 19), (27, 68, 102), (12, 70, 64), (107, 127, 153), (176, 192, 208), (168, 99, 102)]
t.colormode(255)
tim.speed("fastest")
tim.penup()
tim.setpos(-200, -200)
x = -200
y = -200
for yax in range(10):
    for xax in range(10):
        tim.setpos(x, y) # 将海龟移到此处
        tim.pendown()
        tim.dot(20, random.choice(color_list))
        tim.penup()
        x += 50
    y += 50
    x = -200
tim.hideturtle()

screen.exitonclick()

通过这种方式,可以在每次迭代开始时将海龟定位到正确的位置,确保放置所有点,包括最后一次迭代中的点。不再需要手动添加最后一个点了。

标签:python,design-patterns,graphics,turtle-graphics,dot
From: 78807251

相关文章

  • 使用 Python 进行 QuantLib Vanilla 掉期定价 - 错误
    我真的需要帮助...我有一个使用QuantLib构建自己的VanillaSwapPricer的项目。我想根据ois掉期的市场价格进行计算以进行贴现,并根据Euribor6M掉期+FRA进行预测固定。总而言之,我的目标是尽可能接近彭博社对标准Euribor6M掉期的定价(贴现ois)-fwdEuribor6M)。......
  • 我正在制作一个可以打开wav文件的python程序,我想知道wav文件的格式是什么
    因此,我已经通过此网站的研究编写了验证并读取wav标头的代码。但我想知道,data段中的数据是如何存储的?它们位于16位部分中,彼此相邻放置。我认为在Audacity中制作440hz正弦波,然后导出它,会显示一些结果,并且字节确实看起来更整齐,但仍然像废话一样接缝。相信我,我已经......
  • python - 面板库 - PasswordInput 不会对回车做出反应
    我试图避免需要提交按钮。以下代码当前正在远程jupyter实验室运行。仅当光标焦点从密码小部件中移除后,才会打印该消息。我想要回车来触发消息打印。有什么线索吗?frompanel.widgetsimportPasswordInput,TextInputpn.extension()defon_enter(event=None):message_p......
  • 即使安装了软件包,也找不到 python 模块句子转换器
    对于我的python脚本(如下所示),我使用句子转换器包,其中包含SBERT模型。即使在执行“piplist”时明确列出该软件包,并且还安装了torch,所有内容都更新到最新版本,但仍然找不到该模块。脚本:importnumpyasnpimportpandasaspdfromsentence_transformersimportSenten......
  • 有没有办法在 python 中返回类实例的布尔属性?
    我想组织我玩的游戏中的汽车数据。为此,我创建了一个“Car”类。我希望将此类实例的一些属性作为布尔值,这样我就可以将此类的所有实例放入列表中并过滤它们。我当前的解决方案不起作用,因为,我收到以下错误消息:TypeError:__repr__returnednon-string(typeCar)我使用......
  • python 正则表达式匹配一行中的多个单词而不转到下一行
    我正在编写一个解析器来解析以下输出:admin@str-s6000-on-5:~$showinterfacestatusEthernet4InterfaceLanesSpeedMTUAliasVlanOperAdminTypeAsymPFC------------------------------------------......
  • 使用 Python 平滑和对称不规则形状和曲线
    我需要完成三项任务:正则化曲线曲线的对称性完成不完整的曲线例如,这里是输入和预期的输出图像:输入输出|||在一般设置中,形状可以由任何SVG曲线基元(贝塞尔曲线、直线、弧线)表示。为了统一表示,示例包含曲线的折线近似。这些折线保存为......
  • 在Python中通过绝对路径引用数据文件夹
    我有一个大型python项目,其中数据太大,无法每次都以相同的方式共享。不同的人可能会使用网络位置或将某些内容复制到本地驱动器。该路径由不同子文件夹中的脚本和笔记本使用。例如,我将创建一个config.py来定义数据文件夹的路径。importsyssys.path.append('../'......
  • python三天速成记(看完你就会)day3 满满干货~
    续上文啦~EXCEL表的操作上一篇文章讲了怎么读取和操作txt和csv文档,但其实我们生活中还有一个常用的文本格式那就是excel文件,特别是在对大量数据进行处理的时候。excel文件的用处和广泛。其实在python中有很多库可以处理excel文件,但是本文主要介绍使用最实用最广泛的库pan......
  • Python输入验证改进的其他方式
    题目[题目来源:Python编程快速上手——让繁琐工作自动化(第二版)第三章实践项目,下面的解答程序为我自己完成的,仅供参考。]编写一个名为collatz()的函数,他有一个名为number的参数。如果参数是偶数,那么collatz()就输出number//2,并返回该值。如果参数是奇数,那么collatz()就......