boris-vlasenko

Спиральный квадрат

Mar 30th, 2019
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. from tkinter import *
  2. import math
  3. import copy
  4. from random import randrange as rnd, choice
  5. root = Tk()
  6. root.geometry('600x600')
  7. canv = Canvas(root, bg = 'white')
  8. canv.pack(fill = BOTH, expand = 1)
  9.  
  10.  
  11. class Point():
  12.     def __init__(self,x,y):
  13.         self.x = x
  14.         self.y = y
  15.        
  16.  
  17. def getXY(p1,p2,t):
  18.     x = p1.x + (p2.x-p1.x)*t
  19.     y = p1.y + (p2.y-p1.y)*t
  20.     return Point(x,y)
  21.    
  22.    
  23. t = 1/5
  24.  
  25. points = []
  26. points.append(Point(100,100))
  27. points.append(Point(300,100))
  28. points.append(Point(400,300))
  29. points.append(Point(200,500))
  30. points.append(Point(100,200))
  31.  
  32.  
  33. n = 30
  34.  
  35. for i in range(n):
  36.  
  37.     new_points = []
  38.     for i in range(len(points)):
  39.         p1 = points[i-1]
  40.         p2 = points[i]
  41.         canv.create_line(p1.x,p1.y,p2.x,p2.y)
  42.  
  43.         p = getXY(p1,p2,t)
  44.         new_points.append(p)
  45.  
  46.     points = copy.deepcopy(new_points)
  47.  
  48.  
  49.  
  50.  
  51. mainloop()
Advertisement
Add Comment
Please, Sign In to add comment