Example #1
0
    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
Example #2
0
    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']
Example #3
0
    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