【发布时间】:2019-04-23 11:47:55
【问题描述】:
我正在尝试将我之前制作的 Julia 集生成器转换为 Python 代码。然而,当代码运行时,乌龟图形窗口立即停止响应并且什么也不画。我做了什么可怕的错误还是我遗漏了什么?也许我在 1 帧中对 python 的要求太多了。请解释导致这种情况发生的原因以及我如何解决它。谢谢!
import turtle
import time
y_set = []
map_output = 0
iterations = 0
#turtle.hideturtle()
#turtle.speed(1)
生成一个 y 值列表
def y_set (r):
global y_set
y_set = []
for n in range ((360*2)+1):
y_set.append(n)
创建颜色值
def color (i, n):
output = map(i, 2, 10000, 0, 2500)
if output < 0:
output = 0
if output > 0:
output = 255
在 x 上迭代
def repeat (n, r, i):
global iterations
global x
global y
aa = 0
ba = 0
ab = 0
a = 0
b = 0
for j in range (n):
iterations += 1
aa = a * a
bb = b * b
ab = 2 * a * b
a = ((aa - bb) + float(r))
b = (ab + float(i))
if (ab + bb) > 4:
break
turtle.setx(100 * x)
turtle.sety(100 * y)
color(iterations, n)
turtle.pendown()
turtle.penup()
在 y 上迭代
def Julia (s, r, i, d):
global iterations
global y_set
global x
global y
global a
global b
y_set(s)
while len(y_set) > 0:
y = y_set[0]/360
del y_set[0]
x = -1.5
for n in range (round((700/(float(r)+1))+1)):
a = x
b = y
iterations = 0
repeat(10**d, r, i)
x += ((1/240)*s)
用户输入
real = input('Real: ')
imag = input('Imaginary: ')
Julia (1, real, imag, 100)
turtle.done()
【问题讨论】:
-
您希望
map(i, 2, 10000, 0, 2500)做什么? -
我希望 map 取一个 2 到 10000 范围内的数字“i”,并将其映射到 0 到 2500 的新范围。这不是这个函数吗?
-
不,这不是内置的
map()函数所做的——尽管您可以使用它来实现您自己的函数。强烈建议您阅读其documentation。
标签: python python-3.x turtle-graphics fractals