46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
|
'''
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>65<EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
1.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>룺
|
|||
|
'''
|
|||
|
import math
|
|||
|
class PTS:
|
|||
|
def __init__(self):
|
|||
|
self.x = 0
|
|||
|
self.y = 0
|
|||
|
points = []
|
|||
|
|
|||
|
def LineToDemo():
|
|||
|
from Tkinter import *
|
|||
|
screenx = 400
|
|||
|
screeny = 400
|
|||
|
canvas = Canvas(width = screenx,height = screeny,bg = 'white')
|
|||
|
|
|||
|
AspectRatio = 0.85
|
|||
|
MAXPTS = 15
|
|||
|
h = screeny
|
|||
|
w = screenx
|
|||
|
xcenter = w / 2
|
|||
|
ycenter = h / 2
|
|||
|
radius = (h - 30) / (AspectRatio * 2) - 20
|
|||
|
step = 360 / MAXPTS
|
|||
|
angle = 0.0
|
|||
|
for i in range(MAXPTS):
|
|||
|
rads = angle * math.pi / 180.0
|
|||
|
p = PTS()
|
|||
|
p.x = xcenter + int(math.cos(rads) * radius)
|
|||
|
p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
|
|||
|
angle += step
|
|||
|
points.append(p)
|
|||
|
canvas.create_oval(xcenter - radius,ycenter - radius,
|
|||
|
xcenter + radius,ycenter + radius)
|
|||
|
for i in range(MAXPTS):
|
|||
|
for j in range(i,MAXPTS):
|
|||
|
canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
|
|||
|
|
|||
|
canvas.pack()
|
|||
|
mainloop()
|
|||
|
if __name__ == '__main__':
|
|||
|
LineToDemo()
|