Você está aqui: Python ::: Tkinter GUI Toolkit ::: Animação, Animações, Técnicas de Animação

Como movimentar uma imagem no Canvas do Tkinter usando as teclas de direção

Quantidade de visualizações: 616 vezes
Nesta dica mostrarei uma técnica de animação muito valiosa para quem está começando a desenvolver jogos em Tkinter. Nossa idéia é carregar uma imagem na superfície de um elemento Canvas e movê-la na tela usando as teclas de direção (para cima, para baixo, para a direita e para a esquerda).

Este código é muito interessante pois mostra não somente como carregar a imagem no Canvas mas também a usar a função move() para movimentar um determinado elemento, identificado por seu atributo único.

Outro detalhe importante é uso da função bind() para anexar à janela da aplicação os eventos que queremos tratar.

Veja o código Python completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Tkinter
from tkinter import *
from tkinter.ttk import *

# vamos importar os objetos Image e ImageTk do Pillow   
from PIL import Image, ImageTk

# variáveis globais
canvas = None
imagem = None
incremento_x = 20
incremento_y = 20

# método principal
def main():
  # referencia as variáveis globais
  global canvas, imagem, pos_x, pos_y

  # vamos criar o frame para representar a janela da aplicação Tkinter
  janela = Tk()

  # agora definimos o tamanho da janela
  janela.geometry("800x650")

  # criamos o objeto Canvas com o fundo branco
  canvas = Canvas(janela, width=750, height=600, bg="white")
  canvas.pack(pady=20)

  # vamos carregar a imagem que será exibida no Canvas
  imagem_moto = ImageTk.PhotoImage(Image.open('moto.png'))
  
  # colocamos a imagem no Canvas e geramos o id único "imagem" para ela
  imagem = canvas.create_image(50, 50, anchor=NW, image=imagem_moto)

  # agora fazemos o binding dos eventos
  janela.bind("<Left>", esquerda)
  janela.bind("<Right>", direita)
  janela.bind("<Up>", cima)
  janela.bind("<Down>", baixo)

  # e entramos no loop da aplicação
  janela.mainloop()
 
# função para mover a imagem para a esquerda 
def esquerda(evento):
  # referencia as variáveis globais
  global canvas, imagem, incremento_x
  
  canvas.move(imagem, -incremento_x, 0)

# função quer move a imagem para a direita
def direita(evento):
  # referencia as variáveis globais
  global canvas, imagem, incremento_x
  
  canvas.move(imagem, incremento_x, 0)

# função que move a imagem para cima
def cima(evento):
  # referencia as variáveis globais
  global canvas, imagem, incremento_y

  canvas.move(imagem, 0, -incremento_y)

# função que move a imagem para baixo
def baixo(evento):
  # referencia as variáveis globais
  global canvas, imagem, incremento_y

  canvas.move(imagem, 0, incremento_y)

if __name__== "__main__":
  main()


Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Lista (List)

Como inverter a ordem dos elementos em uma lista Python usando o método reverse()

Quantidade de visualizações: 16872 vezes
Inverter a ordem dos itens de um vetor ou lista é uma das tarefas mais corriqueiras durante o trabalho de programação. Na linguagem Python nós podemos inverter os elementos de uma list usando o método reverse(), já embutido na linguagem.

Este método modifica a lista original. Veja um exemplo de seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

def main():
  # cria uma lista de inteiros
  valores = [2, 5, 12, 2, 3, 32, 18]

  # exibe a lista na ordem original
  print(valores)

  # inverte a lista
  valores.reverse()

  # exibe a lista na ordem invertida
  print(valores)
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

[2, 5, 12, 2, 3, 32, 18]
[18, 32, 3, 2, 12, 5, 2]


Python ::: Tkinter GUI Toolkit ::: Formulários e Janelas

Como definir a cor de fundo de uma janela do Tkinter do Python usando a função config()

Quantidade de visualizações: 2834 vezes
A cor de fundo de uma janela do Tkinter do Python pode ser definida por meio de uma chamada à função config() da classe Tk com o valor de uma cor para o parâmetro bg.

Veja uma aplicação Tkinter completa no qual definimos o título da janela e, em seguida, sua cor de fundo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Tkinter
import tkinter as tk

# método principal
def main():
  # vamos criar a janela principal da aplicação
  janela = tk.Tk()

  # vamos definir o título da janela
  janela.title("Sistema de Biblioteca")

  # vamos definir a cor de fundo da janela
  janela.config(bg='#F2B33D')

  # entramos no loop de eventos
  janela.mainloop()

if __name__== "__main__":
  main()



Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Python

Quantidade de visualizações: 2614 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Python.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar o módulo Math
import math as math

def main():
  c = 36.056 # medida da hipotenusa
  b = 30 # medida do cateto adjascente
  
  # agora vamos calcular o comprimento da cateto oposto
  a = math.sqrt(math.pow(c, 2) - math.pow(b, 2))
 
  # e mostramos o resultado
  print("A medida do cateto oposto é: %f" % a)
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

A medida do cateto oposto é: 20.000878

Como podemos ver, o resultado retornado com o código Python confere com os valores da imagem apresentada.


Vamos testar seus conhecimentos em

Cisalhamento e detalhamento de vigas

A NBR 6118 (ABNT, 2014) determina que todos os elementos lineares submetidos à força cortante devem conter armadura transversal mínima (&#961;SW) constituída por estribos.

Nesse contexo, marque a alternativa correta:

A) O diâmetro da barra que constitui o estribo não pode exceder 20% da menor largura da viga.

B) O diâmetro da barra que constitui o estribo deve ser exatamente de 5mm ou menor.

C) Nos estribos em que as barras são lisas, o diâmetro não pode ser superior a 10mm.

D) O espaçamento máximo entre as barras transversais dos estribos não deve ser superior a 20cm.

E) O espaçamento mínimo adequado dos estribos deve ser aquele que permita a introdução do vibrador.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Características do concreto armado

A fissuração é um efeito importante nas estruturas de concreto e não deve ser desprezada. O conhecimento íntimo desse tipo de efeito é de vital importância para garantir a durabilidade e o desempenho das estruturas por longos anos.

A seguir, correlacione os tipos de fissuração e as definições:

1 - Fissuras plásticas.
2 - Fissuras térmicas.
3 - Fissuras de retração por secagem.

( ) Desenvolvem-se por conta de tensões de tração devido à restrição interna causada por retração diferencial entre a superfície e o interior do concreto.

( ) Desenvolvem-se nas primeiras idades do concreto, após o endurecimento.

( ) Desenvolvem-se antes de o concreto estar endurecido, entre 1 e 8 horas após o lançamento.

Agora, assinale a alternativa que traz a sequência correta:

A) 1 - 2 - 3.

B) 2 - 1 - 3.

C) 3 - 1 - 2.

D) 2 - 3 - 1.

E) 3 - 2 - 1.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Turbomáquinas

Uma turbomáquina é um dispositivo no qual a energia é transferida para ou de um fluido em movimento contínuo. A linha da lâmina gira e altera a pressão do fluido, realizando trabalhos no fluido (bomba hidráulica) ou realizando o trabalho na linha da lâmina pelo fluido (turbina).

Qual classe de máquinas hidráulicas é especialmente excluída quando é considerada essa definição apresentada?

A) Essa definição exclui a classe de turbinas eólicas, pois, apesar de referenciar o termo genérico "turbina", não engloba os dispositivos cujos fluidos não são a água e cuja a vazão do fluido pode ser variável.

B) Essa definição exclui as máquinas hidráulicas que contêm um eixo de rotação. Nesse caso, foram excluídos, especialmente, os motores hidráulicos, um grupo amplo e com muitos dispositivos com vazão alta.

C) Essa definição exclui a classe de dispositivos chamados máquinas de deslocamento positivo. Nesses dispositivos, há limites móveis que forçam o fluido a se mover ou são forçados a se mover pelo fluido.

D) Essa definição exclui a classe de dispositivos chamados motores elétricos. Tais máquinas hidráulicas são responsáveis por receber a energia mecânica produzida por dispositivos, como as turbinas eólicas.

E) Essa definição exclui a classe de dispositivos chamados máquinas de deslocamento negativo. Nesses dispositivos, há limites móveis que forçam o fluido a se mover ou são forçados a se mover pelo fluido.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Sistema domiciliar de abastecimento de água

Há diversas opções de materiais empregados nas instalações de água fria. Cada tipo de material se enquadra às condições em que será utilizado. Nas instalações residenciais do Brasil, o material mais empregado é o PVC, por apresentar diversas vantagens.

Quais das opções a seguir apresentam as principais características desse tipo de material?

I. Leve (1,4g/cm3), o que facilita seu manuseio e aplicação.

II. Por ser tóxico, apresenta risco à saúde humana.

III. Sólido e resistente a choques.

IV. Durável: sua vida útil em construções é superior a 50 anos.

As afirmações corretas são:

A) I e II, apenas.

B) I, III e IV, apenas.

C) I, II e III, apenas.

D) II e III, apenas.

E) I, II, III e IV.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Cálculo de velocidade de escoamento e vazão de canais usando a Equação de Manning

Determine a vazão escoada em um canal com seção retangular, com lâmina d'água de 2,00m e largura de base igual a 3,00m e declividade 0,2m por Km. Utilize &#951;=0,012.



Selecione a resposta correta:

A) 1,06 m3/s

B) 0,84 m3/s

C) 6,63 m3/s

D) 4,22 m3/s

E) 7,00 m3/s
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 24 usuários muito felizes estudando em nosso site.