def __init__(self,poly1,poly2,**kw): self.stationary=copy.deepcopy(poly1) self.sliding=copy.deepcopy(poly2) start_point_index=GeoFunc.checkBottom(self.stationary) self.start_point=[poly1[start_point_index][0],poly1[start_point_index][1]] self.locus_index=GeoFunc.checkTop(self.sliding) # 如果不加list则original_top是指针 self.original_top=list(self.sliding[self.locus_index]) GeoFunc.slideToPoint(self.sliding,self.sliding[self.locus_index],self.start_point) self.start=True # 判断是否初始 self.nfp=[] self.rectangle=False if 'rectangle' in kw: if kw["rectangle"]==True: self.rectangle=True self.error=1 self.main() if 'show' in kw: if kw["show"]==True: self.showResult() # 计算完成之后平移回原始位置 GeoFunc.slideToPoint(self.sliding,self.sliding[self.locus_index],self.original_top)
def checkBound(poly): return GeoFunc.checkLeft(poly), GeoFunc.checkBottom(poly), GeoFunc.checkRight(poly), GeoFunc.checkTop(poly)