예제 #1
0
def test_retangulo():
    retangulo_1 = Retangulo(base=10, altura=12)

    assert (retangulo_1.base) == 10
    assert (retangulo_1.altura) == 12
    assert (retangulo_1.calcular_area()) == 120
    assert (retangulo_1.calcular_perimetro()) == 44
예제 #2
0
def main(instancia):
    boxes, Lu, Wu, Hu = get_data(instancia)
    container = [Lu, Wu, Hu]
    ret = []
    for b in boxes:
        color_i = np.random.rand(1, 3)
        for i in range(b.get('qtd')):
            ret.append(Retangulo(b.get('dim'), color=color_i))

    now = time()
    ret, obj = optimize(ret, container)
    obj = get_obj(ret)
    print('Time: ' + str(time() - now))

    print('Dimensoes: ', Lu, Wu, Hu)
    print('Função objetivo: ' + str(obj))

    x_lim = max(Lu, Wu, obj)
    y_lim = max(Lu, Wu, obj)
    z_lim = max(Lu, Wu, obj)

    visualiser = PolyVisualiser(
        array_polygons=ret,
        x_lim=x_lim,
        y_lim=y_lim,
        z_lim=z_lim,
        obj=obj,
        alpha=1,
        title=instancia,
    )

    visualiser.animate(no_animation=False)
    visualiser.scrol()
    visualiser.show()
예제 #3
0
def cria_retangulos():
    x = 45
    y = 125
    for linha in range(6):
        for ret in range(10):
            retangulo = Retangulo(x, y, 30, 15)
            retangulo.troca_cor()
            retangulos.append(retangulo)
            x += 31
        y += 20
        x = 45
예제 #4
0
    def novoJogo(self):
        
        self.player = Retangulo(largura = 100, altura = 20, cor = 'white', pos = (LARGURA//2 + 360, 380), vel = (15, 15), tag = 'player')
        self.player.desenhar(self.canvas)
        self.canvas.bind('<Motion>', self.move_player)
        
        self.bola = Bola(raio = 30, cor = 'red', pos = (100, 200), vel = (3, 3))
        
        
        
        self.r = []
        l, c, e = 5, 8, 2
        b, h, y0 = 48, 20, 50

        for i in range(l):
            cor = random.choice(['black', 'orange', 'white', 'lightgray', 'yellow', 'green', 'purple'])
            for j in range(c):
                r = Retangulo(b, h, cor, (b*j+(j+1)*e, i*h+(i+1)*e + y0), (0, 0), 'rect')
                self.r.append(r)
        self.canvas.create_text(CANVAS_L/2, CANVAS_A/2, text = 'Bem Vindos!!', fill='white', font='Verdana, 12')

        self.jogando = True
    def novoJogo(self):
        #criação dos elementos do jogo
        self.player = Retangulo(largura=100,
                                altura=20,
                                cor='white',
                                pos=(LARGURA // 2 + 360, 380),
                                vel=(15, 15),
                                tag='player')
        self.player.desenhar(self.canvas)
        #movendo o player com o mouse
        self.canvas.bind('<Motion>', self.move_player)

        #criar a bolinha do jogo
        self.bola = Bola(raio=30, cor='red', pos=(100, 200), vel=(3, 3))

        #lista dos retangulos
        self.r = []
        l, c, e = 5, 8, 2  #linhas, colunas e espaçacamentos
        b, h, y0 = 48, 20, 50  #base, altura e posição inicial
        for i in range(l):
            cor = random.choice([
                'black', 'orange', 'white', 'lightgray', 'yellow', 'green',
                'purple'
            ])
            for j in range(c):
                r = Retangulo(b, h, cor,
                              (b * j + (j + 1) * e, i * h + (i + 1) * e + y0),
                              (0, 0), 'rect')
                self.r.append(r)
        self.canvas.create_text(CANVAS_L / 2,
                                CANVAS_A / 2,
                                text='Bem Vindos!',
                                fill='white',
                                font='Verdana, 12')

        #mudar o estado para jogando
        self.jogando = True
예제 #6
0
    def novoJogo(self):
        """
        Cria os elementos necessário para um novo jogo
        """
        #Criamos a bola que irá se movimentar
        self.bola = Bola(raio=30, cor='red', pos=(100, 200), vel=(3, 3))

        #E o player tambem
        self.player = Retangulo(largura=100,
                                altura=20,
                                cor='green',
                                pos=(LARGURA // 2 + 100, 350),
                                vel=(15, 15),
                                tag='player')
        self.player.desenhar(self.canvas)

        #E adicionamos o evento de movimentação com o uso do teclado para o player
        self.canvas.bind('<Motion>', self.move_player)

        #Lista dos retângulos
        self.r = []

        #E por fim as diversas fileiras de retângulos
        l, c, e = 5, 8, 2  #linhas, colunas e espaçamento
        b, h, y0 = 48, 20, 50  #Base, altura e posição inicial dos retângulos
        for i in range(l):
            cor = random.choice(
                ['green', 'orange', 'white', 'lightgray', 'yellow', 'purple'])
            for j in range(c):
                r = Retangulo(b, h, cor,
                              (b * j + (j + 1) * e, i * h + (i + 1) * e + y0),
                              (0, 0), 'rect')
                self.r.append(r)

        #Mantemos uma variável para mostrar que ainda está rolando um jogo
        self.jogando = True
예제 #7
0
    def novoJogo(self):
        """
        Cria os elementos de um novo jogo

        """
        #criar a bola q irá se movimentar
        self.bola = Bola(raio=30, cor='red', pos=(100, 200), vel=(3, 3))

        #criar player tbm
        self.player = Retangulo(largura=100,
                                altura=20,
                                cor='green',
                                pos=(LARGURA // 2 + 100, 350),
                                vel=(15, 15),
                                tag='player')
        #self.player = self.canvas.create_rectangle((CANVAS_L//2, 350), (CANVAS_L//2 + 100, 370), fill = 'green', tag='player')
        self.player.desenhar(self.canvas)

        #adicionar o evento de movimentação com o uso do teclado
        self.canvas.bind('<Motion>', self.move_player)
        #criar arco dentro da bola
        #self.canvas.create_arc(p[0], p[1], p[0] + raio, p[1] + raio, fill='orange', start=60, extent = 90, tag='bola')

        #Lista dos retângulos
        self.r = []

        #E por fim as diversas fileiras de retângulos
        l, c, e = 5, 8, 2  #linhas, colunas e espaçamento
        b, h, y0 = 48, 20, 50  #Base, altura e posição inicial dos retângulos
        for i in range(l):
            cor = random.choice(
                ['green', 'orange', 'white', 'lightgray', 'yellow', 'purple'])
            for j in range(c):
                r = self.canvas.create_rectangle(b * j + (j + 1) * e,
                                                 i * h + (i + 1) * e + y0,
                                                 b * j + (j + 1) * e + b,
                                                 i * h + (i + 1) * e + y0 + h,
                                                 fill=cor,
                                                 tag='rect')
                self.r.append(r)
        #self.canvas.create_text(CANVAS_L/2, CANVAS_A/2, text = 'OLA COLEGA!', fill = 'white')

        #cria bola do jogo

        self.jogando = True
예제 #8
0
def retanguloperi():  #definindo a função
    print("Voce escolheu o Perimetro do Retangulo.")  #Situando o usuário
    try:  # utilizamos o try para tratar teclas que não sejam numéricas com excessão do ponto para valores flutuantes
        base = float(input("Digite a base do retangulo: ")
                     )  #recebendo os valores e setando nas variaveis
        altura = float(input("Digite a altura do retangulo: "))
        meuRetangulo = Retangulo(
            base, altura)  #instanciando a classe e passando os parametros
        meuperi = meuRetangulo.calculaPerimetroreta(
        )  # #chamando a classe para receber o resultado
        print("\nO perimetro do retangulo é {:.2f} cm".format(
            meuperi))  # apresentando a area do circulo para o usuario
        escolha()  # chamando a função novamente
    except ValueError:  # excessão do try, valor recebido errado, que não seja número
        print(
            "Opção inválida, Não utilize letras, virgula ou deixe vazio!\nA entrada deve ser primeiro um número seguido ou não de ponto!"
            "\nPor Favor, tente novamente."
        )  # utilizando barra invertida e n quebramos linha
        escolha()  # chamando a função novamente
예제 #9
0
from retangulo import Retangulo

r1 = Retangulo(5, 6)
print("Área do retangulo: ", r1.calcularArea())
예제 #10
0
from retangulo import Retangulo

#receber do usuarios as medidas
lado_a = int(input("Informe a medida do lado A  do local:"))
lado_b = int(input("Informe a medida do lado B do local:"))
lado_a_piso = int(input("Informe a medida do lado A  do piso:"))
lado_b_piso = int(input("Informe a medida do lado B do piso:"))

sala = Retangulo(lado_a, lado_b)
piso = Retangulo(lado_a_piso, lado_b_piso)

sala.retornar_vlr_lado()
area_sala = sala.calculo_area()
area_piso = piso.calculo_area()
perimetro_sala = sala.calculo_perimetro()
piso.calculo_perimetro()

qtd_pisos = (area_sala / area_piso)
print("A qtd de pisos necessarios é:", qtd_pisos)
qtd_rodape = (perimetro_sala / lado_a_piso)
print("A qtd de rodape necessarios é:", qtd_rodape)
예제 #11
0
def main():
    figuraComplexa = FiguraComplexa(Quadrado(3), Quadrado(10), Retangulo(2, 7),
                                    Retangulo(5, 3))
    print(figuraComplexa)
예제 #12
0
 def setUp(self):
     self.retangulo = Retangulo(3, 5)
예제 #13
0
import pygame
from bola import Bola
from retangulo import Retangulo

bola = Bola()
retangulo = Retangulo(0, 0, 0, 0)

largura_tela = 400
altura_tela = 400

screen_wh = largura_tela, altura_tela

velocidade_x = 5
velocidade_y = 5

BLACK = (0, 0, 0)

relogio = pygame.time.Clock()

retangulos = []


def cria_bola():

    pos_x = 200
    pos_y = 380
    raio = 20

    bola.set_centro_x(pos_x)
    bola.set_centro_y(pos_y)
    bola.set_raio(raio)
예제 #14
0
def main():
    quadrado = Quadrado(5)
    retangulo = Retangulo(5,10)
    circunferencia = Circunferencia(10)
    print(circunferencia.calcularArea(), retangulo.calcularArea(), quadrado.calcularArea())
예제 #15
0
from retangulo import Retangulo

comprimento = float(input("Digite o valor do comprimento do local: "))
largura = float(input("Digite o valor da largura do local: "))

piso = Retangulo()

lag_piso = float(input("Digite a largura do piso "))
com_piso = float(input("Digite o comprimento do piso "))

piso.mudar_valores(lag_piso, com_piso)
area_total = largura * comprimento
num_pisos = area_total / piso.calcula_area()

print(num_pisos)
예제 #16
0
pygame.init()
fundo = pygame.display.set_mode((400, 400))
pygame.display.set_caption('Retangulo')

preto = (0, 0, 0)
branco = (255, 255, 255)
azul = (0, 0, 255)
verde = (0, 255, 0)
vermelho = (255, 0, 0)
cor1 = (220, 50, 50)
cor2 = (100, 100, 0)
cor3 = (50, 100, 150)
cor4 = (255, 200, 0)

#def __init__(self, posX, posY, largura, altura, cor):
a1 = Retangulo(10, 10, 10, 10, vermelho)
a2 = Retangulo(35, 10, 10, 10, branco)
a3 = Retangulo(60, 10, 10, 10, azul)
a4 = Retangulo(85, 10, 10, 10, verde)
a5 = Retangulo(110, 10, 10, 10, cor1)
a6 = Retangulo(135, 10, 10, 10, cor2)
a7 = Retangulo(135, 10, 10, 10, cor3)
a8 = Retangulo(160, 10, 10, 10, cor4)
a9 = Retangulo(185, 10, 10, 10, verde)
a10 = Retangulo(210, 10, 10, 10, branco)

b1 = Retangulo(10, 35, 10, 10, vermelho)
b2 = Retangulo(35, 35, 10, 10, branco)
b3 = Retangulo(60, 35, 10, 10, azul)
b4 = Retangulo(85, 35, 10, 10, verde)
b5 = Retangulo(110, 35, 10, 10, cor1)
예제 #17
0
def main(instance):
    print("Server: " + str(platform.node()) + "\n")

    # Obtem os valores do arquivo e cria os retângulos
    # filename = 'problema1.data'
    filename = instance
    boxes, Lu, Wu, Hu = get_data(filename)
    filename = filename.replace('.data', '', 1)
    filename = filename.replace('instances/', '', 1)
    print(filename)

    # Cria os conjuntos X,Y,Z
    BigX, BigY, BigZ = [], [], []
    for i in boxes:  # Percorrer cada tipo de caixa
        p, q, r = 0, 0, 0
        for e in range(1, i.get('qtd') + 1):
            l = i.get('dim')[0]
            p += e * l
        for e in range(1, i.get('qtd') + 1):
            l = i.get('dim')[1]
            q += e * l
        for e in range(1, i.get('qtd') + 1):
            l = i.get('dim')[2]
            r += e * l

        BigX.append(p)
        BigY.append(q)
        BigZ.append(r)

    container = [Lu, Wu, Hu]

    BigX = [i for i in range(sum(BigX))]
    BigY = [i for i in range(sum(BigY))]
    BigZ = [i for i in range(sum(BigZ))]

    # print(BigX, BigY, BigZ, sep='\n')

    m = Model("3D-ODRPP")
    m.setParam('TimeLimit', 1 * 3600.0)

    L = m.addVar(vtype=GRB.CONTINUOUS, name="L", lb=0, ub=GRB.INFINITY)
    W = m.addVar(vtype=GRB.CONTINUOUS, name="W", lb=0, ub=GRB.INFINITY)
    H = m.addVar(vtype=GRB.CONTINUOUS, name="H", lb=0, ub=GRB.INFINITY)

    z_obj = m.addVar(vtype=GRB.CONTINUOUS, name="Z", lb=0, ub=GRB.INFINITY)

    m.addConstr(z_obj == L + W + H, "z_objective")

    m.setObjective(z_obj, GRB.MINIMIZE)

    X, Y, Z = [], [], []
    for i, box in enumerate(boxes, start=0):
        li = box.get('dim')[0]
        wi = box.get('dim')[1]
        hi = box.get('dim')[2]
        X_i = [p for p in range(0, Lu - li)]
        Y_i = [p for p in range(0, Wu - wi)]
        Z_i = [p for p in range(0, Hu - hi)]
        X.append(X_i)
        Y.append(Y_i)
        Z.append(Z_i)

    # print(X, Y, Z, sep='\n')

    # Criação das variáveis binárias
    x_bin = []
    for i, box in enumerate(boxes):
        rotations = list(permutations(box.get('dim')))
        # print(box.get('dim'), rotations, sep='\t')
        k_list = []
        for k, b in enumerate(rotations):
            p_list = []
            for p in X[i]:
                q_list = []
                for q in Y[i]:
                    r_list = []
                    for r in Z[i]:
                        index = '[' + str(i) + '][' + str(k) + '][' + str(
                            p) + '][' + str(q) + '][' + str(r) + ']'
                        x = m.addVar(vtype=GRB.BINARY, name='X_' + index)
                        r_list.append(x)
                    q_list.append(r_list)
                p_list.append(q_list)
            k_list.append(p_list)
        x_bin.append(k_list)

    print(' = Variables Added')

    # Constraint 2
    for s in BigX:
        for t in BigY:
            for u in BigZ:

                soma_r2 = LinExpr()
                for i, box in enumerate(boxes, start=0):
                    rotations = list(permutations(box.get('dim')))
                    for k, b in enumerate(rotations):
                        li, wi, hi = b[0], b[1], b[2]
                        for p in X[i]:
                            for q in Y[i]:
                                for r in Z[i]:

                                    if s - li + 1 <= p <= s:
                                        if t - wi + 1 <= q <= t:
                                            if u - hi + 1 <= r <= u:
                                                soma_r2 += x_bin[i][k][p][q][r]

                    # index = str(i)
                index = '[' + str(s) + '][' + str(t) + '][' + str(u) + ']'
                m.addConstr(soma_r2 <= 1, name='Restricao2_' + index)

    print(' = Constraint 2 adicionada')

    # Constraint 3
    for j, box in enumerate(boxes, start=0):
        bj = box.get('qtd')
        soma_r3 = LinExpr()
        rotations = list(permutations(box.get('dim')))
        for k, b in enumerate(rotations):
            for p in X[j]:
                for q in Y[j]:
                    for r in Z[j]:
                        soma_r3 += x_bin[j][k][p][q][r]
        m.addConstr(soma_r3 == bj, name='Restricao3_' + str(j))

    print(' = Constraint 3 adicionada')

    # Restrições 4, 5 e 6
    for i, box in enumerate(boxes, start=0):
        rotations = list(permutations(box.get('dim')))
        for k, b in enumerate(rotations):
            for p in X[i]:
                for q in Y[i]:
                    for r in Z[i]:
                        index = '[' + str(i) + '][' + str(k) + '][' + str(
                            p) + '][' + str(q) + '][' + str(r) + ']'
                        li, wi, hi = b[0], b[1], b[2]
                        algo_p = (p + li) * x_bin[i][k][p][q][r]
                        algo_q = (q + wi) * x_bin[i][k][p][q][r]
                        algo_r = (r + hi) * x_bin[i][k][p][q][r]
                        m.addConstr(algo_p <= L, name='Restricao4_' + index)
                        m.addConstr(algo_q <= W, name='Restricao5_' + index)
                        m.addConstr(algo_r <= H, name='Restricao6_' + index)

    print(' = Restrições 4,5,6 adicionadas')

    m.write('models/modelo_' + filename + '.lp')
    print(' = Model written!')
    m.optimize()

    if m.status == GRB.Status.OPTIMAL:
        m.write('results/resultado_' + filename + '.sol')
        print('Container: ', Lu, Wu, Hu, sep='\t')
        print('\nFunção objetivo: ',
              str(round(L.X)),
              str(round(W.X)),
              str(round(W.X)),
              sep='\t')

        # Recupera as posições das caixas
        solutions = []
        for i, box in enumerate(boxes, start=0):
            sol_box = []
            for k in range(6):
                for p in X[i]:
                    for q in Y[i]:
                        for r in Z[i]:
                            if x_bin[i][k][p][q][r].X == 1:
                                sol_box.append([i, (p, q, r), k])
            solutions.append(sol_box)

        # solutions = [[[0, (3, 0, 0), 0], [0, (4, 0, 0), 0]], [[1, (0, 0, 0), 1], [1, (0, 3, 0), 1]],
        #              [[2, (1, 0, 4), 2], [2, (2, 0, 4), 4]], [[3, (1, 1, 5), 1], [3, (2, 2, 5), 4], [3, (1, 3, 5), 5]]]

        ret = []
        for i, box in enumerate(boxes):
            color_b = np.random.rand(1, 3)
            rotated_box = list(permutations(box.get('dim')))
            for j in range(box.get('qtd')):
                sol = solutions[i][j]
                r = rotated_box[sol[2]]
                r = Retangulo(vertex=r, color=color_b)
                r.change_vertex(list(sol[1]))
                ret.append(r)

        ret.sort(key=lambda x: max(x.vertex[2]), reverse=True)

        file_write_list = open('results/retangulos_' + filename + '.bin', 'wb')
        pickle.dump(ret, file_write_list)
예제 #18
0
# Arquivo principal do programa.
from circulo import Circulo  # Do arquivo circulo importe a classe Circulo
from retangulo import Retangulo  # Do arq retangulo importa a classe Retangulo
print("Escolha qual forma deseja utilizar nos calculos!")
forma = int(input("1-Circulo\n2-Retangulo\n->"))
if forma == 1:  # Se foi escolhido a forma 1 (Circulo)
    raio = float(input("Quantos centimetros tem o raio: "))  # Entrada de dados
    meuCirculo = Circulo(raio)  # Na variavel meuCirculo cria um novo
    # objeto do tipo Circulo, passando raio como parâmetro
    meuCirculo.calc_area()  # Chama o método calc_area
    print("A área do circulo é %5.2fcm²!" % meuCirculo.area)
    meuCirculo.calc_perimetro()  # Chama o método calc_perimetro
    print("O perímetro do circulo é %5.2fcm!" % meuCirculo.perimetro)
elif forma == 2:
    altura = int(input("Digite a medida da altura do retangulo: "))  # Entrada de dados
    largura = int(input("Digite a medida da largura do retangulo: "))
    meuRetangulo = Retangulo(altura, largura)  # Na variavel meuretangulo cria um novo
    # objeto do tipo Retangulo, passando ladoMaior e ladoMenor como parâmetros
    meuRetangulo.calc_area()  # Chama o método calc_area
    print("A área do retangulo é %5.2fcm²!" % meuRetangulo.area)
    meuRetangulo.calc_perimetro()  # Chama o método calc_perimetro
    print("O perímetro do retangulo é %5.2fcm!" % meuRetangulo.perimetro)
else:
    print("Opição inválida...")
예제 #19
0
def given_um_retangulo(context, x, y, w, h):
    """Cria objeto retangulo com os parametros especificados."""
    context.retangulo = Retangulo(x, y, w, h)
# EXERCÍCIO 09 - LISTA 08 - CLASSES
print('Classe Ponto e Retângulo')
print('########################')
print()

from ponto import Ponto
from retangulo import Retangulo

X = float(input('Insira a Coordenada X: '))
Y = float(input('Insira a Coordenada Y: '))
altura = float(input('Insira a altura do Retângulo: '))
largura = float(input('Insira a largura do Retângulo: '))

coordenadas = Ponto(X,Y)

retangulo = Retangulo(altura,largura)

centro_retanguloX = retangulo.crX()+coordenadas.X()
centro_retanguloY = retangulo.crY()+coordenadas.Y()

print('A coordenada X do centro do retângulo é: ',centro_retanguloX)
print('A coordenada Y do centro do retângulo é: ',centro_retanguloY)






예제 #21
0
def main(instance, model_file):
    print("Server: " + str(platform.node()) + "\n")

    # Obtem os valores do arquivo e cria os retângulos
    filename = instance
    boxes, Lu, Wu, Hu = get_data(filename)
    filename = filename.replace('.data', '', 1)
    filename = filename.replace('instances/', '', 1)
    print(filename)

    m = read(model_file)
    print('Problema: ' + m.getAttr('modelName'))
    m.setParam('TimeLimit', 1 * 3600.0)

    vars = m.getVars()
    z_obj, L, W, H = vars[0], vars[1], vars[2], vars[3]

    X, Y, Z = [], [], []
    for i, box in enumerate(boxes, start=0):
        li = box.get('dim')[0]
        wi = box.get('dim')[1]
        hi = box.get('dim')[2]
        X_i = [p for p in range(0, Lu - li)]
        Y_i = [p for p in range(0, Wu - wi)]
        Z_i = [p for p in range(0, Hu - hi)]
        X.append(X_i)
        Y.append(Y_i)
        Z.append(Z_i)

    m.optimize()

    # Recuperar as variáveis binárias
    x_bin = []
    for i, box in enumerate(boxes):
        rotations = list(permutations(box.get('dim')))
        k_list = []
        for k, b in enumerate(rotations):
            p_list = []
            for p in X[i]:
                q_list = []
                for q in Y[i]:
                    r_list = []
                    for r in Z[i]:
                        index = 'X_' + '{}_{}_{}_{}_{}'.format(i, k, p, q, r)
                        x = m.getVarByName(index)
                        r_list.append(x)
                    q_list.append(r_list)
                p_list.append(q_list)
            k_list.append(p_list)
        x_bin.append(k_list)

    print(' = Variables Added')

    if True:
        m.write('results/resultado_' + filename + '.sol')
        print('Container: ', Lu, Wu, Hu, sep='\t')
        container = [Lu, Wu, z_obj.X]
        print('\nFunção objetivo: ',
              container[0],
              container[1],
              container[2],
              sep='\t')

        # Recupera as posições das caixas
        solutions = []
        for i, box in enumerate(boxes, start=0):
            sol_box = []
            for k in range(6):
                for p in X[i]:
                    for q in Y[i]:
                        for r in Z[i]:
                            if x_bin[i][k][p][q][r].X == 1:
                                sol_box.append([i, (p, q, r), k])
            solutions.append(sol_box)

        ret = []
        for i, box in enumerate(boxes):
            color_b = np.random.rand(1, 3)
            rotated_box = list(permutations(box.get('dim')))
            for j in range(box.get('qtd')):
                sol = solutions[i][j]
                r = rotated_box[sol[2]]
                r = Retangulo(vertex=r, color=color_b)
                r.change_vertex(list(sol[1]))
                ret.append(r)

        ret.sort(key=lambda x: max(x.vertex[2]), reverse=True)

        file_write_list = open('results/retangulos_' + filename + '.bin', 'wb')
        pickle.dump(ret, file_write_list)

        visualiser = PolyVisualiser(
            array_polygons=ret,
            x_lim=container[0],
            y_lim=container[1],
            z_lim=container[2],
            obj=container[2],
            alpha=.8,
            title=filename,
        )

        visualiser.animate(no_animation=False)
        visualiser.scrol()
        visualiser.show()
예제 #22
0
from retangulo import Retangulo

retanguo1 = Retangulo(8, 5)

retanguo1.imprimir_valores()
retanguo1.imprimir_area()

예제 #23
0
# ----Quadrado------------------

print(' Configuração para a Quadrado!')

vquadrado = Quadrado()
vquadrado.tamanho_lado = int(input('Digite o lado para o quadrado: '))

vquadrado.trocaLado(vquadrado.tamanho_lado)

vquadrado.mostraInfoQuadrado()

print('''
    Quadrado configurado!
''')

# -----Retangulo----------------

print(' Configuração para Retangulo!')

vretangulo = Retangulo()
vretangulo.lado_a = int(input('Informe o lado A: '))
vretangulo.lado_b = int(input('Informe o lado B: '))

vretangulo.setaLados(vretangulo.lado_a, vretangulo.lado_b)

vretangulo.mostraInfoRetangulo()

print('''
    Retangulo configurado!
''')
예제 #24
0
def escolha():
    forma = input(
        "1 - Circulo\n2 - Retangulo\n3 - Triangulo\n4 - Trapézio\n5 - Sair\n-->"
    )  # menu de opções

    try:  # utilizamos o try para tratar teclas que não sejam numéricas com excessão do ponto para valores flutuantes
        if forma == "1":
            raio = float(input("Quantos centimetros tem o raio:"))
            meuCirculo = Circulo(raio)  # instaciando a classe
            minhaarea = meuCirculo.calcularAreacirc(
            )  # recebendo a area da classe circulo
            meuperimetro = meuCirculo.calculaPerimetrocirc(
            )  # recebendo o perimetro da classe circulo
            print("\nA area do círculo é {:.2f} cm".format(minhaarea))
            print("\nO Perimetro do Círculo é {:.2f} cm ".format(meuperimetro))
        elif forma == "2":
            base = float(input("Digite a base do retangulo: ")
                         )  # recebndo os valores e setando nas variaveis
            altura = float(input("Digite a altura do retangulo: "))
            meuRetangulo = Retangulo(
                base, altura
            )  # instanciando a minha classe e enviando meus parametros
            areareta = meuRetangulo.calcularAreareta(
            )  # chamando a classe para receber o resultado
            meuperi = meuRetangulo.calculaPerimetroreta(
            )  # #chamando a classe para receber o resultado
            print("\nA area do retangulo é {:.2f} cm²".format(
                areareta))  # apresentando a area do circulo para o usuario
            print("\nO perimetro do retangulo é {:.2f} cm".format(
                meuperi))  # apresentando a area do circulo para o usuario
        elif forma == "3":
            lado1 = float(input("Digite o lado 1 do triangulo: ")
                          )  # recebndo os valores e setando nas variaveis
            lado2 = float(input("Digite o laodo 2 do triangulo: "))
            base = float(input("Digite a base do triangulo: ")
                         )  # recebndo os valores e setando nas variaveis
            altura = float(input("Digite a altura do triangulo: "))
            meuTriangulo = Triangulo(
                lado1, lado2, base, altura
            )  # instanciando a minha classe e enviando meus parametros
            areatri = meuTriangulo.calcularAreaTri(
            )  # chamando a classe para receber o resultado
            peritri = meuTriangulo.calculaPerimetroTri(
            )  # #chamando a classe para receber o resultado
            print("\nA area do triangulo é {:.2f} cm²".format(
                areatri))  # apresentando a area do circulo para o usuario
            print("\nO perimetro do triangolo é {:.2f} cm".format(
                peritri))  # apresentando a area do circulo para o usuario
        elif forma == "4":
            lado1 = float(input("Digite o lado 1 do trapezio: ")
                          )  # recebndo os valores e setando nas variaveis
            lado2 = float(input("Digite o laodo 2 do trapezio: "))
            basemenor = float(input("Digite a base Menor do trapezio: ")
                              )  # recebndo os valores e setando nas variaveis
            basemaior = float(input("Digite a base Maior do trapezio: ")
                              )  # recebndo os valores e setando nas variaveis
            altura = float(input("Digite a altura do trapezio: "))
            meuTrapezio = Trapezio(
                lado1, lado2, basemenor, basemaior, altura
            )  # instanciando a minha classe e enviando meus parametros
            areatrap = meuTrapezio.calcularAreaTrap(
            )  # chamando a classe para receber o resultado
            peritrap = meuTrapezio.calculaPerimetroTrap(
            )  # #chamando a classe para receber o resultado
            print("\nA area do trapezio é {:.2f} cm²".format(
                areatrap))  # apresentando a area do circulo para o usuario
            print("\nO perimetro do trapezio é {:.2f} cm".format(
                peritrap))  # apresentando a area do circulo para o usuario
        elif forma == "5":
            print("ATÉ A PRÓXIMA!!!")  # despedida
            exit()  #finaliza o programa
        else:
            print(
                "Opção inválida, a escolha deve ser uma operação da lista!\nPor Favor, tente novamente."
            )  # caso usuário digite tecla que não faz parte das opções
            escolha()  # chamada da função para reinicialização do programa
    except ValueError:  # excessão do try, valor recebido errado, que não seja número
        print(
            "Opção inválida, Não utilize letras, virgula ou deixe vazio!\nA entrada deve ser primeiro um número seguido ou não de ponto!\nPor Favor, tente novamente."
        )
        escolha()  # chamada da função para reinicialização do programa