tkinter canvas create_arc方法给出圆边弧

时间:2017-03-24 04:54:19

标签: python-2.7 tkinter tkinter-canvas

我在tkinter中绘制弧线。它们使用'arc'方法,因此只有指定宽度和颜色的外边缘。令人讨厌的是,一些弧似乎随机地具有圆形边缘。有谁知道这是一个错误还是可以修复?

示例代码:

w1.create_arc(xarc0,yarc0,xarc1,yarc1,start=arcstart,extent=arcextent,width=thick1,outline=mc,style="arc")

所附问题的图片。

enter image description here

1 个答案:

答案 0 :(得分:2)

经过一些实验,我相信这是一个小故障

我运行了一个模拟来创建360个弧,每个弧的范围都来自1 - 360,我发现弧的最后一个弯曲端的唯一时间是当弧的范围是90或271时,我不知道不知道为什么会发生这种情况,但我认为不应该这样做。

arcs

绿色弧是模拟,红色蓝色弧是具有弯曲末端的弧。我不认为有办法解决这个问题,但是你可以将范围从90改为91,因为我已经为橙色弧做了,你可以看到它有一个直接的结果,并没有太大的区别。

如果您想要使用它,可以使用以下代码:

from tkinter import *

Window = Tk()
w1 = Canvas(Window)
w1.pack()


for x in range(360):
    w1.after(5)
    arc = w1.create_arc(20, 20, 150,100,start=0,extent=x,width=30,outline = "green", style="arc")    
    w1.update()
    if x == 90 or x == 271:
        print("Now!")    

w1.create_arc(160,20,   300,100,start=0,extent=90,width=30,outline = "red", style="arc")
w1.create_arc(180,120,  320,200,start=0,extent=271,width=30,outline = "blue", style="arc")
w1.create_arc(0,  150,  140,230,start=0,extent=91,width=30,outline = "orange", style="arc")