Python Tkinter画布坐标中的浮点值

Python Tkinter画布坐标中的浮点值,python,canvas,floating-point,tkinter,Python,Canvas,Floating Point,Tkinter,创建画布对象时如何使用浮动坐标? 例如: from Tkinter import * import math main=Tk() w=Canvas(main, height=100, width=100) w.grid(row=0, column=0) for y in range(100): for x in range(100): if y==math.sin(x): w

创建画布对象时如何使用浮动坐标? 例如:

    from Tkinter import *
    import math

    main=Tk()
    w=Canvas(main, height=100, width=100)
    w.grid(row=0, column=0)
    for y in range(100):
        for x in range(100):
            if y==math.sin(x):
                w.create_oval(x, y, x, y)
        x=0
它返回空白表单。。。
那么,我如何使用浮点数作为坐标呢?

您有几个问题

sinx永远不会大于1或小于-1,因此将y检查为100是没有意义的。你的整个循环结构是错误的。 如果要将x与sinx1、0和-1的整数值匹配,则需要将x乘以math.pi/2 由于浮点数学的工作方式,0==sinpi或0==sin2*pi将不为真,因此需要检查-0.01 如果是这样的话,您的代码可以是尽可能少的更改:

from Tkinter import *
import math

main=Tk()
w=Canvas(main, height=100, width=100)
w.grid(row=0, column=0)
for x in range(100):
    # this makes the sine curve y-value 
    # stretch from 0 to 100 instead of -1 to 1
    y = 49.5 - math.sin(x) * 49.5
    w.create_oval(x, y, x, y)

@埃里克森我不想对他想要的东西猜太多。我改变了你提到的第一件事,因为这样你至少不会试图在窗外画画;第二,我不想猜测他想要什么,我在第二节提到了这个问题。