【问题标题】:Clear only a part of the screen in turtle graphics在海龟图形中只清除屏幕的一部分
【发布时间】:2018-01-28 12:49:57
【问题描述】:

我正在使用海龟图形,我想只清除屏幕的一部分并保持其余图像/绘图不变。

到目前为止,我一直在绘制一个白色矩形来清除图像的一部分,但这很慢,如果背景不是白色,我就不能使用这种方法。

这是我一直在使用的功能:

import turtle
t = turtle.Turtle()

def screen_clearer(coordinate_x, coordinate_y, length, width):
    t.up()
    t.goto(coordinate_x, coordinate_y)
    t.color("white")
    t.begin_fill()
    t.setheading(0)
    for i in range(2):
        t.fd(length)
        t.rt(90)
        t.fd(width)
        t.rt(90)
    t.end_fill()

turtle 中是否有一个只清除部分屏幕的内置函数?我已经查看并没有发现任何东西,所以这就是我一直使用它的原因。

【问题讨论】:

  • 我不这么认为!
  • 谢谢,我很确定这是不可能的
  • 我最终使用了你的解决方案)

标签: python turtle-graphics


【解决方案1】:

一种粗略的方法是使用不同的海龟来绘制屏幕的不同部分。准备好后,您可以拥有一只或多只海龟 clear().undo() 他们的屏幕部分:

from time import sleep
from turtle import Turtle, Screen

screen = Screen()
screen.bgcolor("cyan")

left = Turtle(visible=False)
left.color("white")

right = Turtle(visible=False)
right.color("red")

left.penup()
left.goto(-200, -150)
left.pendown()

left.circle(150, 720, steps=5)

right.penup()
right.goto(200, -175)
right.pendown()

right.circle(175, 360, steps=6)

sleep(3)

left.clear()  # or: while left.undobufferentries(): left.undo()

screen.mainloop()

【讨论】:

  • 感谢您的想法,我确实会使用多个海龟来清除屏幕的不同部分
【解决方案2】:

要删除最后一行,请使用屏幕颜色的笔将其移回。例如,在白屏上: 颜色:黑色”);前锋(100) 白颜色”);返回(100)

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多