[英]Turtle Graphics displaying pixelated graphics
作为我正在学习的课程的一部分,我创建了一个随机点画生成器程序。 我的代码涉及使用turtle.dot()
函数在乌龟turtle.dot()
创建点。 实际的逻辑似乎工作正常,但它正在创建像素化的点,如模糊图像。
课程视频具有完美的输出 - 圆应该是怎样的。
我从 VSCode 切换到 PyCharm,但这没有帮助。 我还创建了许多其他 Turtle Graphics 程序 - Spirograph 生成器、随机游走,但它们都不会在屏幕上产生锐利的物体,正如您对 21 世纪机器所期望的那样。
我无法弄清楚问题是什么。 是代码吗? 显示驱动程序? 或一些错误?
这是代码:
import turtle
turtle.colormode(255)
t = turtle.Turtle()
s = turtle.Screen()
t.penup()
t.speed(0)
t.setpos(-200, -200)
for m in range(10):
for n in range(10):
t.dot(20, 'red')
t.forward(50)
t.setx(-200)
t.sety(t.ycor()+50)
s.exitonclick()
注意斑点看起来像多边形而不是圆形:
如果你想要 RTX 级别的图形,我很确定你应该使用 python 海龟以外的东西。 乌龟就是这样,它就像有史以来发明的第一个机器人一样。 名为乌龟。 http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle-seymour-papert-marvin-minsky-et-al-american/
你可以尝试的一件事是像这样的turtle.shape()和turtle.stamp():
import turtle
turtle.colormode(255)
t = turtle.Turtle()
s = turtle.Screen()
t.penup()
t.speed(0)
t.setpos(-200, -200)
for m in range(10):
for n in range(10):
t.shape("circle")
t.stamp()
t.forward(50)
t.setx(-200)
t.sety(t.ycor()+50)
s.exitonclick()
它并不完美,但你可以弄清楚。
当问题实际上是您的环境时,您可能会责怪您的代码。 您的基于dot()
的代码在我的系统上生成了大圆圈:
如果我们仔细观察,它们会很好地反锯齿:
您的老师可能只是拥有更好的图形子系统和/或显示器。 我们可以试试乌龟的circle()
方法:
turtle.begin_fill()
turtle.circle(10)
turtle.end_fill()
但这看起来并不比dot()
:
特写证实了这一点:
但是circle()
并不会非常努力地使用小半径,我们可以使用steps
参数覆盖它:
turtle.circle(10, steps=180)
再次特写:
@RobertMcNeil 的stamp()
建议在我的系统上产生了更糟糕的结果:
最后附上一张特写:
我会说坚持你的原始设计并在不同的系统上测试它。
from turtle import Screen, Turtle
from random import random
screen = Screen()
turtle = Turtle()
turtle.hideturtle()
turtle.speed('fastest')
turtle.penup()
turtle.setposition(-200, -200)
for _ in range(10):
for _ in range(10):
turtle.dot(20, (random(), random(), random()))
turtle.forward(50)
turtle.setx(-200)
turtle.sety(turtle.ycor() + 50)
screen.exitonclick()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.