[英]How can I change the size of my python turtle window?
I am currently trying to draw a Mandelbrot set in python with turtle. 我目前正在尝试使用乌龟在python中绘制一个Mandelbrot。 However, my problem has nothing to do with the Mandelbrot. 但是,我的问题与Mandelbrot无关。 I can't change the size of my turtle window. 我不能改变我的龟窗的大小。 How can I do that? 我怎样才能做到这一点?
I tried to initialize a screen and set the screen size with the screensize method. 我尝试使用screensize方法初始化屏幕并设置屏幕大小。 Nothing changes if I do this. 如果我这样做,没有任何改变。
This is my code for drawing the set. 这是我绘制集合的代码。 I pasted the whole code because I don't know what I did wrong that the screen size doesn't change. 我粘贴了整个代码,因为我不知道我做错了屏幕尺寸没有改变。
from turtle import *
height = 360
width = 360
screen = Screen()
screen.screensize(width, height)
tu = Turtle()
tu.hideturtle()
tu.speed(0)
tu.penup()
def decreasePoint(n, start1, stop1, start2, stop2):
return ((n - start1) / (stop1 - start1)) * (stop2 - start2) + start2
for x in range(width):
for y in range(height):
a = decreasePoint(x, 0, width, -2, 2)
b = decreasePoint(y, 0, height, -2, 2)
ca = a
cb = b
n = 0
z = 0
while n < 100:
aa = a * a - b * b
bb = 2 * a * b
a = aa + ca
b = bb + cb
n += 1
if abs(a + b) > 16:
break
bright = 'pink'
if (n == 100):
bright = 'black'
tu.goto(x , y)
tu.pendown()
tu.dot(4, bright)
tu.penup()
done()
Instead of: 代替:
screen.screensize(width, height)
do: 做:
screen.setup(width, height)
The screensize()
method sets the amount of area the turtle can roam, but doesn't change the screen size (despite the name), just the scrollable area. screensize()
方法设置乌龟可以漫游的区域数量,但不会改变屏幕大小(尽管名称),只是可滚动区域。 Also, to simplify your code, speed it up and produce a more detailed result, I suggest the following rework: 此外,为了简化您的代码,加快速度并产生更详细的结果,我建议进行以下返工:
from turtle import Screen, Turtle
WIDTH, HEIGHT = 360, 360
screen = Screen()
screen.setup(WIDTH + 4, HEIGHT + 8) # fudge factors due to window borders & title bar
screen.setworldcoordinates(0, 0, WIDTH, HEIGHT)
turtle = Turtle()
turtle.hideturtle()
turtle.penup()
def scalePoint(n, start1, stop1, start2, stop2):
return (n - start1) * (stop2 - start2) / (stop1 - start1) + start2
screen.tracer(False)
for x in range(WIDTH):
real = scalePoint(x, 0, WIDTH, -2, 2)
for y in range(HEIGHT):
imaginary = scalePoint(y, 0, HEIGHT, -2, 2)
c = complex(real, imaginary)
z = 0j
color = 'pink'
for _ in range(100):
if abs(z) >= 16.0:
break
z = z * z + c
else:
color = 'black'
turtle.goto(x, y)
turtle.dot(1, color)
screen.update()
screen.tracer(True)
screen.exitonclick()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.