代码运行不报错但是运行出来不显示,求高人指点
import randomfrom math import sin,cos,pi,log
from tkinter import *
CANVAS_WIDTH=840
CANVAS_HEIGHT=680
CANVAS_CENTER_X=CANVAS_WIDTH/2
CANVAS_CENTER_Y=CANVAS_HEIGHT/2
IMAGE_ENLARGE = 11
HEART_COLOR="pink"
def heart_function(t,shrink_ratio:float=IMAGE_ENLARGE):
"""
"爱心函数生成器"
:param shrink_ratio:
:param t:
:return:
"""
x=16*(sin(t) **3)
y=-(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(3*t)-cos(4*t))
x*=shrink_ratio
y*=shrink_ratio
x+=CANVAS_CENIER_X
y+=CANVAS_CENIER_Y
return int(x),int(y)
你提供的代码片段中有一个拼写错误,导致心形函数生成器无法正常工作:
在 `heart_function` 函数中:
x += CANVAS_CENIER_X# 错误
y += CANVAS_CENIER_Y# 错误
应该是:
x += CANVAS_CENTER_X# 正确
y += CANVAS_CENTER_Y# 正确
另外,确保有代码调用 `heart_function` 进行绘图,实现完整的显示功能。例如:
def draw_heart(canvas):
for i in range(3000):
t = random.uniform(0, 2 * pi)
x, y = heart_function(t)
canvas.create_line(x, y, x+1, y, fill=HEART_COLOR)
root = Tk()
canvas = Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT, bg='white')
canvas.pack()
draw_heart(canvas)
root.mainloop()
这样可以在画布上绘制出心形。请确保结合完整代码运行。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 变量名拼写错误:CANVAS_CENIER_X 和 CANVAS_CENIER_Y 应该是 CANVAS_CENTER_X 和 CANVAS_CENTER_Y。
heart_function 函数中的 t 变量应该是一个从 0 到 2π 的值,但是在你的代码中并没有调用这个函数来生成点。
你的代码中没有创建 Tkinter 窗口和画布,也没有将心形函数的点绘制到画布上。 很cool的阳 发表于 2024-10-24 10:25
变量名拼写错误:CANVAS_CENIER_X 和 CANVAS_CENIER_Y 应该是 CANVAS_CENTER_X 和 CANVAS_CENTER_Y。
hear ...
哥,方便纠正一下代码吗?小白一个 import random
from math import sin, cos, pi
from tkinter import *
CANVAS_WIDTH = 840
CANVAS_HEIGHT = 680
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 11
HEART_COLOR = "pink"
def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
"""
"爱心函数生成器"
:param shrink_ratio:
:param t:
:return:
"""
x = 16 * (sin(t) ** 3)
y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
x *= shrink_ratio
y *= shrink_ratio
x += CANVAS_CENTER_X
y += CANVAS_CENTER_Y
return int(x), int(y)
def draw_heart(canvas, t_values):
for t in t_values:
x, y = heart_function(t)
canvas.create_oval(x-10, y-10, x+10, y+10, fill=HEART_COLOR)
root = Tk()
canvas = Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT)
canvas.pack()
# 生成参数t的值,用于绘制心形
t_values =
draw_heart(canvas, t_values)
root.mainloop() 很cool的阳 发表于 2024-10-24 13:00
import random
from math import sin, cos, pi
from tkinter import *
谢谢哥
页:
[1]