def f(event): x, y = self.xyscala( event.x, event.y ) # captura x e y do canvas e converte de acordo com nossa escala if not self.forma_aux: # se a forma auxiliar for None (Nula) self.forma_aux = Poligono( (x, y) ) # realiza instância de uma Linha com a coordenada inicial self.add_frame_buffer( x, y, self.cor) # adiciona cor ao pixel no frame buffer self.pinta_coord([ (x, y) ]) # pinta no Canvas a coordenada informada elif (x, y) != self.forma_aux.coords[ -1]: # se o último vértice for diferente do novo clicado for x, y in bresenham(self.forma_aux.coords[-1], (x, y)): self.add_frame_buffer( x, y, self.cor) # adiciona cor ao pixel no frame buffer self.pinta_coord( bresenham(self.forma_aux.coords[-1], (x, y))) self.forma_aux.coords.append( (x, y)) # adiciona vértice à linha if len(self.forma_aux.coords) > 1 and self.forma_aux.coords[ 0] == self.forma_aux.coords[-1]: self.forma_aux.fechado = True self.add_forma() # adiciona e reseta self.forma_aux
def borda(self): borda = [] borda.extend(self.poligono_a.borda()) # z -> 2 borda.extend(self.poligono_b.borda()) # z -> 1 for p1,p2 in zip(self.poligono_a.coords,self.poligono_b.coords): borda.extend(algoritmos.bresenham(p1,p2)) return borda
def Bt_bresenham(c): x0,y0,x1,y1 = ed.get().split(',') print("x(",x0,',',y0,')',x1,y1) points = bresenham((0,3),(3,9)) draw_point(c,points)
def borda(self): if len(self.coords)==1: return self.coords else: v = self.coords borda = [] for i in range(len(v)-1): borda.extend(algoritmos.bresenham(v[i],v[i+1])) return borda
def f(event): x,y = self.xyscala(event.x,event.y) # converte de acordo com escala if self.frame_buffer_aux: # caso haja algo no buffer auxiliar x0,y0 = self.frame_buffer_aux[-1] self.frame_buffer_aux = bresenham((x0,y0),(x,y)) # retorna coordenadas da linha for x,y in self.frame_buffer_aux: self.add_frame_buffer(x,y,self.cor) else: # se buffer auxiliar vazio self.frame_buffer_aux.append((x,y)) self.add_frame_buffer(x,y,self.cor) self.pinta_buffer(self.frame_buffer_aux)