Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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)