Shapepuzzle / circle.py
MrJShen's picture
Upload 23 files
598008a
from PIL import Image, ImageDraw
import math
import numpy as np
from canvas import *
def _re_coord(point,x=c_length/2,y=c_height/2):
return (point[0]+x, y-point[1])
def _back_coord(point):
return (point[0]-c_length/2, c_height/2-point[1])
def circle_c_r(center, radiu, fill = None, color = (0,0,0), width = 1):
ce = _re_coord(center)
p1 = (ce[0]- radiu/math.sqrt(2), ce[1] - radiu/math.sqrt(2))
p2 = (ce[0]+ radiu/math.sqrt(2), ce[1] + radiu/math.sqrt(2))
draw.pieslice([p1,p2], start=0, end=360, fill=fill, outline=color, width=width)
data = {'center':center,
'radiu':radiu,
'arc':math.pi*2*radiu}
return data
def circle_draw(point, diameter, angle=0, fill = None, color = (0,0,0), width = 1):
po = _re_coord(point); radiu = diameter/2
x_e = radiu * math.cos(-angle); y_e = radiu*math.sin(-angle)
ce = (po[0]-x_e, po[1]-y_e)
p1 = (ce[0]- radiu/math.sqrt(2), ce[1] - radiu/math.sqrt(2))
p2 = (ce[0]+ radiu/math.sqrt(2), ce[1] + radiu/math.sqrt(2))
draw.pieslice([p1,p2], start=0, end=360, fill=fill, outline=color, width=width)
data = {'center':_back_coord(ce),
'radiu':radiu,
'arc':math.pi*2*radiu}
return data