最近趁闲自学了tkinter,在用canvas中的create_arc画弧线时,一直画不出自己想要的弧线。create_arc方法中需要传入两个点,一开始我以为这两个点一个是弧线的最高点,另一个是弧线的最低点,但是画出来的结果不尽如意。
后来查找许多资料,才发现这两个点并不是弧线上的点,而是一个矩形的左上点右下点。create_arc画弧线的机制是在给定的矩形内创造一个椭圆,然后通过start和extent参数来分割出你想要的曲线部分,如:
from tkinter import *
root = Tk()
root.title('弧线')
w = Canvas(root, background='white', width=500, height=500)
w.pack()
w.create_rectangle(100, 100, 300, 200)
w.create_oval(100, 100, 300, 200)
# 在点(100,100)和点(300,200)确定的矩形中画一个内接椭圆,以椭圆上与椭圆中心成-150°的点为起点,逆时针画一条角度为120°的弧线,也就是(-150°,-30°)
w.create_arc(100, 100, 300, 200, start=-150, extent=120, style=ARC, width=3)
w.mainloop()
?
绿线部分就是我们要画的弧线,至此,困扰了两三个小时的问题成功解决!
|