python - 不使用 Turtle 渲染相同的图像
问题描述
我找到了将多边形组合成马赛克的这段代码。从这里看来,乌龟只会走这么快。我不需要手绘,只想看看渲染的图像。当然,不使用乌龟,我将不得不使用其他东西(我希望使用 PIL)。所以问题有两个方面:
在不使用 Turtle 的情况下,我如何仍然获得似乎绘制马赛克的向上和向左运动。
如何使用 PIL 作为图像展示平台?
然而,它似乎已经完成myPen.left()
并且myPen.forward()
绘图发生了:
import turtle
myPen = turtle.Turtle()
myPen.shape("arrow")
myPen.speed(1000)
def drawMosaic(color,numberOfSides,size,numberOfIterations):
myPen.color(color)
for i in range(0,numberOfIterations):
for j in range (0,numberOfSides):
myPen.forward(size)
myPen.left(360 / numberOfSides)
myPen.left(360 / numberOfIterations)
drawMosaic("#0B5CCB",8,40,10)
myPen.hideturtle()
解决方案
我不需要手绘,只想看看渲染的图像。
你可以在海龟中实现这一点。如果不关心绘制过程的动画,可以使用tracer()
方法将其关闭:
from turtle import Screen, Turtle
def drawMosaic(color, numberOfSides, size, numberOfIterations):
myPen.color(color)
for _ in range(numberOfIterations):
for _ in range(numberOfSides):
myPen.forward(size)
myPen.left(360 / numberOfSides)
myPen.left(360 / numberOfIterations)
screen = Screen()
myPen = Turtle(visible=False)
screen.tracer(False)
drawMosaic("#0B5CCB", 8, 40, 10)
screen.tracer(True)
screen.exitonclick()
确保tracer()
在完成绘图后重新打开以避免某些伪影(如损坏hideturtle()
等)
推荐阅读
- hibernate - 在 tomcat 中创建名为“dataSource”的 bean 时出错
- python - 未找到关闭的属性
- android - 清空 Singleton 实例和所有字段
- angular - 如何对表单内的指令进行验证?
- android - 动画不听 onRepeatAnimation 函数
- c# - 我不明白 Ninject 如何在我的应用程序 MVC 中创建 RoleManager
- sql - 如何将sql任务中以下查询的结果集分配给ssis中的变量
- fullcalendar - 自定义按钮切换设置 filterResourcesWithEvents 忽略 jquery text() 调用
- mysql - mysql在大数据中删除重复行
- spring - 我们如何将 Spring WebClient 连接到 Unix Domain Socket?