File size: 1,224 Bytes
598008a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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