#y = _y[8:] # find the period h0 = h[0] period = -1 for i in range(1,len(x)): if (abs(h[i]-h0) < 0.1): period = i assert period!=-1, "No periodicity found!\n" periods = math.floor(len(x) / period) print("Period: {0}/{1}".format(period,len(x))) i_q = int(period / 3) c_points = [ Point(x[i],y[i]) for i in (0,i_q,i_q*2) ] print(' '.join(map(str,c_points))) circle = Circle.from3(*c_points) print("(Est) 3P circle: ({0:.02f},{1:.02f}) {2:.02f}\n".format( circle.c.x,circle.c.y,circle.r)); # calculate r and c diameter = np.max(x)-np.min(x) center_x = np.mean(x) center_y = np.mean(y) print("(Est) circle: ({0:.02f},{1:.02f}) {2:.02f}\n".format( center_x,center_y,diameter/2)); #center_y += 26 # d_circle = plt.Circle([287.24,405.11],114.7,color='r',alpha=.2) # d_circle = plt.Circle([circle.c.x,circle.c.y],circle.r,color='r',alpha=.2) d_circle = plt.Circle([center_x,center_y],diameter/2,color='r',alpha=.2)