Skip to content

Docs Módulo interface_interativa

softwares_aeropendulo.simulador_aeropendulo.interface_interativa.Interface

Classe que implementa a interface interativa do simulador do Aeropêndulo.

Atributo

animacao_aeropendulo: Instância da classe AnimacaoAeropendulo. controlador: Instância da classe AnimacaoAeropendulo.

Source code in softwares_aeropendulo/simulador_aeropendulo/interface_interativa.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Interface:
    """
    Classe que implementa a interface interativa do simulador do Aeropêndulo.

    Atributo:
        animacao_aeropendulo: Instância da classe AnimacaoAeropendulo.
        controlador: Instância da classe AnimacaoAeropendulo.
    """
    def __init__(self, animacao_aeropendulo, controlador) -> None:
        self.EXE = False
        self.valor_angle = 0.0
        self.controlador = controlador
        self.animacao_aeropendulo = animacao_aeropendulo
        self.scene = animacao_aeropendulo.scene

        # Criando a interface
        self.__criar_interface()

    def __executar(self, b) -> None:
        if self.EXE:
            self.animacao_aeropendulo.girar_helice()
            b.text = "Executar"
        else:
            b.text = "Pausar"
            self.animacao_aeropendulo.pause_giro()
        self.EXE = not self.EXE

    def rotate(self, angle) -> None:
        self.valor_angle = (angle.number)*(vp.pi/180.0)
        self.animacao_aeropendulo.aeropendulo.rotate(axis=vp.vec(0, 0, 1),
                                                     angle=self.valor_angle,
                                                     origin=vp.vec(0, 5.2, 0))
        self.animacao_aeropendulo.set_posicao_helice(self.valor_angle)

    def __slide_angle_referencia(self, valor) -> None:
        self.controlador.r = valor.value
        print(valor.value)

    def __criar_interface(self) -> None:
        self.scene.append_to_caption(
            "\tMenu Interativo Aeropêndulo\n")
        self.scene.append_to_caption("\n\t ")
        self.buttom_exe = vp.button(bind=self.__executar,
                                    text="Excecutar",
                                    color=vp.color.white,
                                    background=vp.color.red,
                                    width=100, _height=40)
        self.scene.append_to_caption("\t\t")
        self.scene.append_to_caption(
            "Posição Inicial\t")
        vp.winput(bind=self.rotate, prompt="Rotate: ", type="numeric",
                  width=100, _height=40)
        vp.wtext(text=" Graus")
        self.scene.append_to_caption('\n')

        self.scene.append_to_caption("\n\n\t")
        self.scene.append_to_caption("Referência : ")
        vp.slider(bind=self.__slide_angle_referencia, min=0, max=2,
                  step=0.001, value=0)
        self.scene.append_to_caption("\n\n")

__executar(b)

Source code in softwares_aeropendulo/simulador_aeropendulo/interface_interativa.py
37
38
39
40
41
42
43
44
def __executar(self, b) -> None:
    if self.EXE:
        self.animacao_aeropendulo.girar_helice()
        b.text = "Executar"
    else:
        b.text = "Pausar"
        self.animacao_aeropendulo.pause_giro()
    self.EXE = not self.EXE

rotate(angle)

Source code in softwares_aeropendulo/simulador_aeropendulo/interface_interativa.py
46
47
48
49
50
51
def rotate(self, angle) -> None:
    self.valor_angle = (angle.number)*(vp.pi/180.0)
    self.animacao_aeropendulo.aeropendulo.rotate(axis=vp.vec(0, 0, 1),
                                                 angle=self.valor_angle,
                                                 origin=vp.vec(0, 5.2, 0))
    self.animacao_aeropendulo.set_posicao_helice(self.valor_angle)

__slide_angle_referencia(valor)

Source code in softwares_aeropendulo/simulador_aeropendulo/interface_interativa.py
53
54
55
def __slide_angle_referencia(self, valor) -> None:
    self.controlador.r = valor.value
    print(valor.value)

__criar_interface()

Source code in softwares_aeropendulo/simulador_aeropendulo/interface_interativa.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
def __criar_interface(self) -> None:
    self.scene.append_to_caption(
        "\tMenu Interativo Aeropêndulo\n")
    self.scene.append_to_caption("\n\t ")
    self.buttom_exe = vp.button(bind=self.__executar,
                                text="Excecutar",
                                color=vp.color.white,
                                background=vp.color.red,
                                width=100, _height=40)
    self.scene.append_to_caption("\t\t")
    self.scene.append_to_caption(
        "Posição Inicial\t")
    vp.winput(bind=self.rotate, prompt="Rotate: ", type="numeric",
              width=100, _height=40)
    vp.wtext(text=" Graus")
    self.scene.append_to_caption('\n')

    self.scene.append_to_caption("\n\n\t")
    self.scene.append_to_caption("Referência : ")
    vp.slider(bind=self.__slide_angle_referencia, min=0, max=2,
              step=0.001, value=0)
    self.scene.append_to_caption("\n\n")