def coordenada_esta_dentro(self, coordenada): x = coordenada[0] y = coordenada[1] egr_inter1 = mt.egr_perpendicular(coordenada, self._reta1) egr_inter2 = mt.egr_perpendicular(coordenada, self._reta2) egr_inter3 = mt.egr_perpendicular(coordenada, self._reta3) egr_inter4 = mt.egr_perpendicular(coordenada, self._reta4) p_inter1 = mt.ponto_interseccao(egr_inter1, self._reta1) p_inter2 = mt.ponto_interseccao(egr_inter2, self._reta2) p_inter3 = mt.ponto_interseccao(egr_inter3, self._reta3) p_inter4 = mt.ponto_interseccao(egr_inter4, self._reta4) if x > p_inter1[0] and \ x < p_inter2[0] and \ x < p_inter3[0] and \ x > p_inter4[0] and \ y > p_inter1[1] and \ y < p_inter2[1] and \ y < p_inter3[1] and \ y > p_inter4[1]: return True else: return False
def direcao(self, ponto, direcao=ct.DIRECAO['esquerda_direita']): if direcao != ct.DIRECAO['esquerda_direita']: direcao = ct.DIRECAO['baixo_cima'] x = ponto[0] y = ponto[1] if direcao == ct.DIRECAO['esquerda_direita']: egr_inter1 = mt.egr_perpendicular(ponto, self._r1) egr_inter3 = mt.egr_perpendicular(ponto, self._r3) p_inter1 = mt.ponto_interseccao(egr_inter1, self._r1) p_inter3 = mt.ponto_interseccao(egr_inter3, self._r3) if (x < p_inter1[0]) and (x < p_inter3[0]): return ct.DIRECAO['esquerda_direita'] else: return ct.DIRECAO['direita_esquerda'] else: egr_inter2 = mt.egr_perpendicular(ponto, self._r2) egr_inter4 = mt.egr_perpendicular(ponto, self._r4) p_inter2 = mt.ponto_interseccao(egr_inter2, self._r2) p_inter4 = mt.ponto_interseccao(egr_inter4, self._r4) if (y < p_inter2[1]) and (y < p_inter4[1]): return ct.DIRECAO['baixo_cima'] else: return ct.DIRECAO['cima_baixo']
def passou_reta(self, coordenada, qual_reta=1): if qual_reta == 1: egr_inter1 = mt.egr_perpendicular(coordenada, self._reta_contagem1) p_inter1 = mt.ponto_interseccao(egr_inter1, self._reta_contagem1) else: egr_inter1 = mt.egr_perpendicular(coordenada, self._reta_contagem2) p_inter1 = mt.ponto_interseccao(egr_inter1, self._reta_contagem2) if self._eixo == const.EIXO['x'] and self._direcao == const.DIRECAO[ 'esquerda_direita']: if coordenada[0] < p_inter1[0]: return False else: return True elif self._eixo == const.EIXO['x'] and self._direcao == const.DIRECAO[ 'direita_esquerda']: if coordenada[0] < p_inter1[0]: return True else: return False elif self._eixo == const.EIXO['y'] and self._direcao == const.DIRECAO[ 'cima_baixo']: if coordenada[1] < p_inter1[1]: return False else: return True elif self._eixo == const.EIXO['y'] and self._direcao == const.DIRECAO[ 'baixo_cima']: if coordenada[1] < p_inter1[1]: return False else: return True