天道酬勤,学无止境

How can I make a turtle do something when it gets close to another turtle?

Good afternoon,

I am simulating a virus outbreak with the use of turtles. I have come up with the following code, my question will be after the code:

import turtle
import random
import time

def make_population(amount):
    """
    Creates a list representing a population with a certain amount of people.
    """
    population = []
    for person in range(amount):
        population.append(turtle.Turtle())
    for person in population:
        person.shape("circle")
        person.shapesize(0.2)
    return population

def random_move(person):
    """
    Makes a turtle move forward a random amount and then turn a random amount.
    """
    person.forward(random.randint(0,20))
    person.right(random.randint(-180,180))

def check_boundary(person):
    """
    Checks if a turtle is still within the given boundaries.
    """
    if -250 <= person.xcor() <= 250 and -250 <= person.ycor() <= 250:
        return
    person.setpos(random.randint(-200,200),random.randint(-200,200))

def infect_random(population):
    """
    Gets a random item from the population list and turns one red
    """
    infected = random.choice(population)
    infected.color("red")
    return infected

def infect_person(person):
    """
    Makes the turtle infected
    """
    infected_person = person.color("red")
    return infected_person

def simulation(amount, moves = 0):
    """
    Simulates a virus outbreak
    """
    border = 500
    window = turtle.Screen()
    turtle.setup(500,500)
    turtle.tracer(0)
    population = make_population(amount)
    for person in population:
        person.penup()
        person.setpos(random.randint(-250,250),random.randint(-250,250))
    turtle.update()
    infected = infect_random(population)
    for move in range(moves):
        turtle.tracer(0)
        for person in population:
            random_move(person)
            if person.distance(infected) < 50:
                infect_person(person)
            check_boundary(person)
        turtle.update()
        time.sleep(0.5)

    window.exitonclick()

So when the simulation starts I infect 1 random person, and if other turtles get close, e.g. within 50 pixels, they will get infected too and turn red. However, these newly 'infected' turtles won't infect other turtles since they are not 'infected' as compared to the initial turtle. I have tried changing it to infected = infect_person(person) but this just gives me an error. I am stuck for a while now and was wondering if there is anyone who can help. I have also thought about making two lists: population and infected_population maybe that can solve my issue but I couldn't figure out how to implement that in the rest of my code.

Thanks in advance

评论

I believe the solution is separating low level turtle operations into a Person subclass of Turtle from high level operations on people in the simulation:

from turtle import Screen, Turtle
from random import randint, choice
from time import sleep

class Person(Turtle):
    population = []

    def __init__(self):
        super().__init__(shape='circle')

        self.shapesize(0.2)
        self.penup()
        self.setpos(randint(-250, 250), randint(-250, 250))

        Person.population.append(self)

    @classmethod
    def all_infected(cls):
        return [person for person in cls.population if person.infected()]

    def infect(self):
        self.color('red')

    def infected(self):
        return self.pencolor() == 'red'

    def random_move(self):
        """
        Makes a turtle move forward a random amount and then turn a random amount.
        """

        self.right(randint(-180, 180))
        self.forward(randint(0, 20))

        # checks if turtle is still within the given boundaries.

        if not (-250 < self.xcor() < 250 and -250 < self.ycor() < 250):
            self.undo()  # undo forward()

def make_population(amount):
    """
    Creates a list representing a population with a certain amount of people.
    """

    for _ in range(amount):
        Person()

def infect_random():
    """
    Gets a random item from the population list and turns one red
    """

    person = choice(Person.population)
    person.infect()

def simulation(amount=20, moves=100):
    """
    Simulates a virus outbreak
    """

    make_population(amount)

    infect_random()

    screen.update()

    for _ in range(moves):
        for person in Person.population:
            person.random_move()

            if not person.infected():
                for infected in Person.all_infected():
                    if person.distance(infected) < 50:
                        person.infect()

        screen.update()
        sleep(0.5)

screen = Screen()
screen.setup(500, 500)
screen.tracer(0)

simulation()

screen.exitonclick()

We could go further with turtle timer events to make the people more autonomous instead of the for _ in range(moves): loop.

I believe you have made a small example but we miss information about data structure, is person a class?

You do not reassign the person as infected.

When you infected the first people

infected = infect_random(population)

you assign it as infected, but when you infect other persone you don't, you turn it in red return the person:

def infect_person(person):
    """
    Makes the turtle infected
    """
    infected_person = person.color("red")
    return infected_person

but hen In your code you don't assign it,

infect_person(person)

I suggest either to use a way to know who is infected or who is not. For example: If you have used POO :

  • you can add a field is_infected

  • else use a list that keeps the indices of the person being infected?

Doing that you will have to change the way you test if someone near is infected. For all person near a person if one is infected then I am becoming infected...

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Python Turtle 图形窗口仅短暂打开然后关闭(Python Turtle Graphics Window only Opens Briefly then Closes)
    问题 我最近开始在Python中使用turtle模块,我承认,我是一个完全的新手。 我一直无法让海龟在其中绘图的图形窗口保持打开状态。 即使我尝试运行像这样简单的东西: import turtle wn = turtle.Screen() tur = turtle.Turtle() tur.forward(50) 我得到的只是 Python 启动器图标,它会出现在我的 Dock 上一瞬间然后关闭。 感谢任何帮助,顺便说一下,我正在 Aptana Studio 3 中执行此操作。 回答1 另外,您可能想尝试 turtle.mainloop() 在我看来,这比使用 Tk 稍微好一点。 回答2 添加: import Tkinter Tkinter.mainloop() 到脚本的末尾,这将解决它。 发生的事情是,一旦你创建了一个屏幕并绘制到它上面,没有什么可以阻止 Python 立即退出。 对 Tkinter.mainloop 的调用同步处理来自 Tkinter(构建 Python 海龟库的 GUI 工具包)的事件,直到屏幕窗口关闭。 回答3 或者您可以尝试添加: wn.exitonclick() 这将使图形窗口保持打开状态,直到您单击它。 回答4 我也有同样的问题。 我可以非常短暂地看到海龟窗口,只是短暂的闪光,然后它就消失了。 为了补救,我只是在我的代码末尾写了input() 。
  • Python:如何重置海龟图形窗口(Python: How to reset the turtle graphics window)
    问题 我正在制作一个使用乌龟牌的二十一点游戏,每次我玩一只手乌龟时,只打印上一场比赛而不是清除窗口。 是否有一种方法可以在调用时关闭窗口,或者还有另一个为什么要这样做? 回答1 我想澄清各种海龟函数的作用,因为在此讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能会造成混淆: turtle.mainloop()又名turtle.Screen().mainloop()将控制权交给turtle.Screen().mainloop()的事件循环。 通常,缺少turtle.Screen().mainloop() (或turtle.Screen().exitonclick()等)会导致窗口关闭,因为程序将结束,关闭所有内容。 除非该脚本是从 Python IDLE -n 中运行的,否则该语句或其变体之一应该是海龟图形程序中的最后一条语句。 turtle.done() (不关闭窗口也不重置任何东西。) turtle.mainloop()同义词 turtle.clear()删除这个海龟绘制的所有东西(不仅仅是最后一个东西)。 否则不会影响乌龟的状态。 turtle.reset()一个turtle.clear() ,然后重置这个turtle 的状态(即方向、位置等) turtle.clearscreen() aka turtle.Screen().clear()删除所有绘图和所有海龟
  • assign values to turtles by searching through CSV header row in Netlogo
    I have 3 producers. Each has 200 consumers as turtles who have purchased laptops. All producers sell laptops. The laptops have 3 kinds of features : size of the screen, price, battery life. Each has some levels. For example battery life has 5 hours, 12 hours, 24 hours, 30 hours. Each producer has some information about how consumers have rated these items based on what they have experienced that is stored in a csv file. So the CSV file header is something like this : Consumer 12 13 13.5 14 14.5 15 500 600 750 650 550 700 5 12 24 30 ( To exaplin the header : 12 - 15 represent levels of screen
  • Turtle graphics - How do I control when the window closes?
    I have a small python script which draws some turtle graphics. When my script has finished running, the turtle screen automatically closes, so to be able to see the graphics for a while I have to use time.sleep(5) at the end of the script to delay the closing. Is there any way I can make this more dynamic, i.e. tell python that I want to control the closing of the window myself? I don't mind if the script can't do anything else while waiting for my command, but I'd prefer if I didn't have to go to the console for a read() or something. Ideally, the canvas should stay open even after the script
  • 如何使用乌龟在python中同时绘制项目?(How to make items draw at the same time in python using turtle?)
    问题 我有一个家庭作业,我必须让四只不同的海龟像行星一样围绕太阳移动。 我已经写好了,这只是让海龟同时绘制的问题。 我想知道是否有一种相对简单的方法可以让它们在同一时间(在合理范围内)开始? 无论如何,这是代码: def planets(): """simulates motion of Mercury, Venus, Earth, and Mars""" import turtle mercury = turtle.Turtle() venus = turtle.Turtle() earth = turtle.Turtle() mars = turtle.Turtle() mercury.shape('circle') venus.shape('circle') earth.shape('circle') mars.shape('circle') mercury.pu() venus.pu() earth.pu() mars.pu() mercury.sety(-58) venus.sety(-108) earth.sety(-150) mars.sety(-228) mercury.pd() venus.pd() earth.pd() mars.pd() mars.speed(7.5) venus.speed(3) earth.speed(2) mars.speed(1)
  • 如何终止Lua脚本?(How to terminate Lua script?)
    问题 我将如何终止 Lua 脚本? 现在我在使用 exit() 时遇到问题,我不知道为什么。 (这更像是一个 Minecraft ComputerCraft 问题,因为它使用了包含的 API。)这是我的代码: while true do if turtle.detect() then if turtle.getItemCount(16) == 64 then exit() --here is where I get problems end turtle.dig() --digs block in front of it end end 回答1 正如 prapin 的回答所述,在 Lua 中,函数os.exit([code])将终止主机程序的执行。 然而,这可能不是您想要的,因为调用os.exit会终止您的脚本,还会终止正在运行的父 Lua 实例。 在Minecraft ComputerCraft 中,调用error()也将完成您要查找的内容,但将其用于其他目的而不是在发生错误后真正终止脚本可能不是一个好习惯。 因为在 Lua 中,所有脚本文件也被视为具有自己作用域的函数,退出脚本的首选方法是使用return关键字,就像从函数返回一样。 像这样: while true do if turtle.detect() then if turtle.getItemCount(16) ==
  • python中的海龟-试图让海龟移动到鼠标单击位置并打印其坐标(Turtle in python- Trying to get the turtle to move to the mouse click position and print its coordinates)
    问题 我正在尝试通过Python乌龟获取鼠标位置。 一切正常,除了我无法使乌龟跳到鼠标单击的位置。 import turtle def startmap(): #the next methods pertain to drawing the map screen.bgcolor("#101010") screen.title("Welcome, Commadore.") screen.setup(1000,600,1,-1) screen.setworldcoordinates(0,600,1000,0) drawcontinents() #draws a bunch of stuff, works as it should but not really important to the question turtle.pu() turtle.onclick(turtle.goto) print(turtle.xcor(),turtle.ycor()) screen.listen() 据我了解,显示“ turtle.onclick(turtle.goto)”的行应将乌龟发送到我单击鼠标的任何位置,但事实并非如此。 打印行是一个测试,但它只会返回我最后一次发送乌龟的位置,名义上是(0,650),尽管这并不重要。 我尝试在pydoc中查找教程,但是到目前为止,我还无法成功编写该教程。
  • 有效停用社交网络中特定代理和品种之间的特定链接(Effectively deactivating specific links between specific agents and breeds in a social network)
    问题 NetLogo 中建立了一个不同年龄代理的社交网络,类似于以下内容,从而形成一个由链接连接的代理圈。 这些链接的总体目的是表示这些链接之间的联系。 该模型模拟感染在网络中的传播。 代理开始时很敏感,如果他们与具有传染性的邻居接触,就有可能被感染。 例如,我想对感染者的隔离或隔离进行建模。 即他们与其他人的链接将被完全停用,或者至少他们的大部分链接将被停用。 理想情况下,我会按下观察者界面上的按钮来停用受感染代理的链接。 我还希望能够模拟关闭学校的情况,例如,大多数幼儿和儿童以及他们之间的联系将被停用,从而阻止儿童之间的感染能力。 如果他们较少,他们与成年人的联系可能应该保持开放,尽管现在一次只关注一个品种之间的联系可能更好。 breed [ toddlers toddler ] breed [ children child ] breed [ adults adult ] breed [ over45s over45 ] globals [ num-nodes num-infected num-susceptible prob-infection-toddler prob-infection-child prob-infection-adult prob-infection-over45 force-of-infection ] turtles-own [ temp
  • Python中的ASCII艺术(ASCII art in Python)
    问题 我是python的新手,出于兴趣爱好而选择了它,并通过一些搜索发现自己是“计算实践”中的一堆练习,其中一个要求写一个ASCII数字,如下所示。 这似乎是一个足够容易的练习,但是我似乎无法用数字画出这个数字,该练习指出,上述绘制是通过使用数字“ 1”绘制的。 它还指出,不能或不应使用小于0或大于100的数字来创建ASCII绘图。 这是另一个例子: 此处输入的是数字“ 2”。 我找到了一种使第一张图片出现的方法,但是没有通过任何方式使用给定数字的方式,只是在while循环内使用了一个简单的“ else”,这样我就可以过滤出小于或等于0的数字了。大于或等于100。 我已经死定了。 如上所述,我的代码不使用变量号来创建第一个图形: while True: s = input("Give me a number to make a drawing with that is between 0 and 100: ") if not s.isdigit(): print ("Error, only numbers will make this program run.") continue #Try Again but with a number this time if int(s) >= 100: print ("The number is bigger than or equal
  • Javascript Duck Typing的示例?(Example of Javascript Duck Typing?)
    问题 一些程序员建议不要在Javascript中使用伪经典继承,但建议使用鸭子类型并为每个对象提供一组功能。 有一个很好的例子说明如何做到这一点吗? 我在下面有一个示例,但它一次只分配一个功能。 我们可以分配的方法全组的物体,如可以,我们设定的原型OceanAnimal可以“游泳”,“潜水”和“崛起”,一个原型LandAnimal的“运行”,“走”,和“跳转”,并让一个对象从其中一个或两个继承? (因此,一个鱼对象可以继承或获得OceanAnimal的功能,而乌龟则可以同时获得OceanAnimal和LandAnimal ?) var yoyo = { name: "Yoyo", type: "turtle" } var simba = { name: "Simba", type: "lion" } var dolphy = { name: "Dolphy", type: "dolphin" } function swim(n) { console.log("My name is", this.name, ", I am a", this.type, "and I just swam", n, "feet") } function run(n) { console.log("My name is", this.name, ", I am a", this.type, "and I
  • 使用Python的Launchctl最小工作示例(Launchctl minimal working example with Python)
    问题 我想使用launchd每分钟运行一个python脚本。 我的plist文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.turtle.script.plist</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python</string> <string>/Users/turtle/Desktop/turtle.py</string> <string>/Users/turtle/Desktop/data/data.txt</string> </array> <key>StartInterval</key> <integer>60</integer> </dict> </plist> 我得到以下信息后,此plist文件看起来不错: plutil -lint com.turtle.script.plist com.turtle.script
  • 在Python乌龟游戏中检测碰撞(Detecting collision in Python turtle game)
    问题 我正在尝试制作一个Python游戏,其中红乌龟追逐蓝乌龟。 当红色乌龟抓到蓝色乌龟时,我希望它在屏幕上说“碰撞”,但它不起作用。 当它碰撞时,什么也没发生,这给我一个错误“ Turtle”对象不可调用”。 from turtle import Turtle, Screen playGround = Screen() playGround.screensize(250, 250) playGround.title("Turtle Keys") run = Turtle("turtle") run.speed("fastest") run.color("blue") run.penup() run.setposition(250, 250) follow = Turtle("turtle") follow.speed("fastest") follow.color("red") follow.penup() follow.setposition(-250, -250) def k1(): run.forward(45) def k2(): run.left(45) def k3(): run.right(45) def k4(): run.backward(45) def quitThis(): playGround.bye() def follow_runner()
  • Python Turtle Graphics Window only Opens Briefly then Closes
    I have recently begun using the turtle module in Python, and I admit, I am a complete novice. I have been having trouble getting the graphics window in which the turtle does its drawing to stay open. Even when I try to run something as simple as this: import turtle wn = turtle.Screen() tur = turtle.Turtle() tur.forward(50) all I get is the Python launcher icon to appear on my dock for a split second and close. Any help is appreciated, and I am, by the way, doing this in Aptana Studio 3.
  • 如何获得我的海龟图形海龟的 X 坐标(How do I get the X coordinate for my turtle graphics turtle)
    问题 我可以使用以下代码创建一个位于窗口中的海龟: Turtle t1 = new Turtle(w,100,100); 如果我想知道它的坐标,我可以写: int getX(w); 但是当我有2只海龟t1和t2时,如果我想知道turtle1的X坐标,我不知道该怎么办。 Turtle t1 = new Turtle(w,100,100); Turtle t2 = new Turtle(w,200,100); 如果我写int getX(w) ,我会得到哪些海龟的 X 坐标? 我怎么写才能得到t1的坐标? 回答1 使用turtle.xcor()返回x 位置。 使用turtle.ycor()返回y 位置。 回答2 对于 python 海龟模块,使用 getPosition 方法获取海龟的 x 和 y 坐标,如下所示: import turtle import time alex = turtle.Turtle() alex_text = turtle.Turtle() alex_text.goto(alex.position()[0], alex.position()[1]) alex_text.write("hello") time.sleep(1) turtle.position() - 返回海龟的当前位置 (x,y)(作为 Vec2D 向量)。 在此处阅读更多相关信息:https:/
  • Python: How to reset the turtle graphics window
    I am a making a blackjack game with cards using turtle and each time I play a hand turtle just prints over the last game instead of clearing the window. Is there a method that closes the window when it is called or is there another why of doing this?
  • 徽标编程语言实现(Logo programming language implementations [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 6年前关闭。 改进这个问题 Joel 在 Podcast #58 中提出的“笑话”问题让我非常怀念 Logo,它是我在 Basic 之后编程的第二语言,这就是为什么我在大学里从来没有遇到任何递归问题的原因。 是否有适用于 Windows 或 Linux(我可以使用的平台)或 Mac(因为我知道我在这个世界上并不孤单)的 Logo 实现? 如何为我的计算机获得 Logo 编程语言? 回答1 我正在使用Elica LOGO在 Windows 上成功教我的孩子LOGO 。 (孩子们现在 12 岁和 10 岁。) 该软件包的优势包括许多“高级”扩展,超出了基本的二维海龟。 其中包括 3-D 图形和与 Windows 小部件世界的简单挂钩。 (您可以从 LOGO 代码中创建带有按钮等的 Windows 窗体。) 缺少声音/音乐功能,至少在 5.5 版本中,内置文档丰富,有很多高级示例,但在我看来它不是很有用——因为它不完整,并且它有很多包含错误的编码示例. (但我的孩子通过查找编程示例中的错误来了解更多。) 回答2 在 Mac 或 Linux 上启动终端,输入python ,然后按 Return 或 Enter。
  • 小甲鱼python课后习题【1,2,3,4,5】
    【学习笔记,仅供学习交流使用,知识源于鱼c论坛】 作业1: 测试题: 0、Python 是什么类型的语言? Python是脚本语言:(对话框形式)是为了缩短传统的编写-编译-链接-运行的电脑编程语言,特性就是简化编程,让开发者用简单的语句编写出让电脑听命令行事的程序,同时让电脑进行的相互式操作自动化, 1、IDLE 是什么? IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。 2、print() 的作用是什么? print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell窗口)。 3、Python 中表示乘法的符号是什么? “*” 4、为什么 >>>print('I love fishc.com ’ * 5) 可以正常执行,但 >>>print('I love fishc.com ’ + 5) 却报错? 在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本。 5、如果我需要在一个字符串中嵌入一个双引号,正确的做法是? 你有两个选择:1、可以利用反斜杠(\)对双引号转义:",2
  • wiki上ROS核心教程学习笔记(初级教程)
    ROS核心教程学习笔记 1.安装和配置ROS环境2.ROS文件系统导览3.创建ROS软件包4. 构建软件包5.理解ROS节点6.理解ROS话题7.理解ROS服务和参数8.使用rqt_console和roslaunch9.使用rosed在ROS中编辑文件10.创建ROS消息和服务11.编写简单的发布者和订阅者12.检验简单的发布者和订阅者13.编写简单的服务和客户端14.检验简单的服务和客户端15.录制和回放数据16.从bag文件中读取消息17.roswtf入门 1.安装和配置ROS环境 本节重点: 检查环境变量ROS_ROOT和ROS_PACKAGE_PATH的正确设置: $ printenv | grep ROS 结果如下: ROS_ETC_DIR=/opt/ros/melodic/etc/ros ROS_ROOT=/opt/ros/melodic/share/ros ROS_MASTER_URI=http://localhost:11311 ROS_VERSION=1 ROS_PYTHON_VERSION=2 ROS_PACKAGE_PATH=/opt/ros/melodic/share ROSLISP_PACKAGE_DIRECTORIES= ROS_DISTRO=melodic source命令将.bash文件加入环境: $ source /opt/ros/<distro>
  • python画图turtle给不规则图形填充颜色_Python使用Turtle图形函数画图 颜色填充!(学习笔记)...
    turtle:海龟先生的意思。 Python老是用动物的名字! 首先要引入呀! 不引入当然是不可以用的呀! turtle.forward(100):效果图 鼠标前进100步! 后退的话,鼠标就又回来啦! 当然也可以向右向左!鼠标会改变角度! 向右旋转多少度,向左旋转多少度呀之类的! turtle.left(90):这一下,又旋转回来啦! 鼠标走过的途径不会擦除,会一直保留着! 画出了一个矩形,这是通过变量来控制的。也可以通过循环来控制! import turtle i = 0 a = 6 b = 45 while True: if i > 33: break turtle.forward(a) turtle.right(b) turtle.forward(a) turtle.left(b) i+=1 来画一个螺旋形状的图形! 改变一下角度就好啦! import turtle i = 0 a = 6 b = 90 while True: if i > 12: break turtle.forward(a) turtle.right(b) turtle.forward(a) i+=1 a += 10 画出圆: 利用距离,角度。一次增加1.来实现! import turtle i = 0 while i < 360: turtle.forward(1) turtle.right(1) i
  • 将海龟图形保存到 .eps 文件时,背景颜色显示在屏幕上但未保存在 .eps 文件中(When saving turtle graphics to an .eps file, the background color shows on the screen but is not saved in the .eps file)
    问题 我是 Python 的新手,一直在使用乌龟模块作为学习语言的一种方式。 感谢 stackoverflow,我研究并学习了如何将图像复制到封装的 postscript 文件中,并且效果很好。 然而,有一个问题。 turtle模块允许显示在屏幕上但不显示在.eps文件中的背景颜色。 所有其他颜色,即钢笔颜色和海龟颜色,都可以通过,但背景颜色不能。 有趣的是,我不相信导入Tkinter是必要的,因为我不相信我在这里使用任何Tkinter模块。 我把它作为尝试诊断问题的一部分。 我还使用了bgcolor=Orange而不是s.bgcolor="orange" 。 没有喜悦。 我包括一个简单的代码示例: # Python 2.7.3 on a Mac import turtle from Tkinter import * s=turtle.Screen() s.bgcolor("orange") bob = turtle.Turtle() bob.circle(250) ts=bob.getscreen() ts.getcanvas().postscript(file = "turtle.eps") 我试图发布屏幕图像和.eps文件,但作为新用户,stackoverflow 不允许我这样做。 某种垃圾邮件预防。 虽然简单到可以可视化,但屏幕的背景颜色为橙色,eps 文件为白色。