Você está aqui: Python ::: Tkinter GUI Toolkit ::: Canvas

Como usar o componente Canvas em suas aplicações Tkinter Python

Quantidade de visualizações: 1388 vezes
O que é o objeto Canvas do Tkinter?

O controle Canvas é uma área retangular usada com o propósito de desenhar gráficos, tais como linhas, círculos, retângulos, polígonos, etc. Além disso, o objeto Canvas permite a inserção de imagens, texto, frames e até controles visuais tais como botões, labels, caixas de texto, entre outros.

Como criar um objeto Canvas no Tkinter?

Em sua forma mais simples, um controle Canvas é criado por meio de uma chamada ao construtor Canvas(), fornecendo o nome de seu componente pai e opções de personalização do controle. Veja o código abaixo:

----------------------------------------------------------------------
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 *

# método principal
def main():
  # cria a janela principal da aplicação
  janela_principal = Tk() 
 
  # define as dimensões da janela
  janela_principal.geometry("400x350")
 
  # define o título da janela
  janela_principal.title("Uso do controle Canvas")

  # vamos criar o objeto Canvas
  canvas = Canvas(janela_principal, bg="white", width=400, height=350)

  # colocamos o Canvas na janela principal
  canvas.grid(row=0, column=0)

  # agora vamos desenhar um círculo no Canvas
  canvas.create_oval(40, 40, 150, 150)

  # entramos no loop de eventos 
  janela_principal.mainloop()

if __name__== "__main__":
  main()

Ao executar esta aplicação Tkinter Python nós teremos o seguinte resultado:



Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Python - Como calcular Bhaskara em Python

Quantidade de visualizações: 2361 vezes
Como resolver uma equação do 2º grau usando Python

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Python.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código Python vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Python. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

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

# importamos a bibliteca Math
import math

def main():
  # vamos pedir para o usuário informar os valores dos coeficientes
  a = float(input("Valor do coeficiente a: "))
  b = float(input("Valor do coeficiente b: "))
  c = float(input("Valor do coeficiente c: "))
  # vamos calcular o discriminante
  discriminante = (b * b) - (4 * a * c)
    
  # a equação possui duas soluções reais?
  if(discriminante > 0):
    raiz1 = (-b + math.sqrt(discriminante)) / (2 * a)
    raiz2 = (-b - math.sqrt(discriminante)) / (2 * a)
    print("Existem duas raizes: x1 = {0} e x2 = {1}".format(raiz1, raiz2))
  # a equação possui uma única solução real?
  elif(discriminante == 0):
    raiz1 = raiz2 = -b / (2 * a)
    print("Existem duas raizes iguais: x1 = {0} e x2 = {1}".format(raiz1, raiz2))  	
  # a equação não possui solução real?
  elif(discriminante < 0):
    raiz1 = raiz2 = -b / (2 * a)
    imaginaria = math.sqrt(-discriminante) / (2 * a)
    print("Existem duas raízes complexas: x1 = {0} + {1} e x2 = {2} - {3}".format( 
      raiz1, imaginaria, raiz2, imaginaria))

if __name__== "__main__":
  main()

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural

Exercícios Resolvidos de Python - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando Python

Quantidade de visualizações: 983 vezes
Pergunta/Tarefa:

Veja a seguinte figura:



Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero.

Escreva um programa Python que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A.

Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga).

Sua saída deve ser parecida com:

Valor da carga em kN/m: 10
Distância em metros: 13

A reação no apoio A é: 65.000000 kN
A reação no apoio B é: 65.000000 kN
O momento fletor máximo é: 211.250000 kN

Informe uma distância a partir do apoio A: 4
O momento fletor na distância informada é: 180.000000 kN

A força cortante no apoio A é: 65.000000 kN
A força cortante no apoio B é: -65.000000 kN
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

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

# Algoritmo que calcula reação de apoio, momento fletor
# e força cortante em uma viga bi-apoiada em Python

# vamos importar o módulo Math
import math

# função principal do programa
def main():
  # vamos pedir para o usuário informar o valor da carga
  carga = float(input("Valor da carga em kN/m: "))
  
  # vamos pedir para o usuário informar a distância entre os apoios
  distancia = float(input("Distancia em metros: "))
  
  # vamos calcular a reação no apoio A
  reacao_a = (1.0 / 2.0) * carga * distancia
  
  # vamos calcular a reação no apoio B
  reacao_b = reacao_a
  
  # vamos calcular o momento fletor máximo
  flexao_maxima = (1.0 / 8.0) * carga * math.pow(distancia, 2.0)
  
  # e mostramos o resultado
  print("\nA reação no apoio A é: {0} kN".format(reacao_a))
  print("A reação no apoio B é: {0} kN".format(reacao_b))
  print("O momento fletor máximo é: {0} kN".format(flexao_maxima))
  
  # vamos pedir para o usuário informar uma distância a
  # partir do apoio A
  distancia_temp = float(input("\nInforme uma distância a partir do apoio A: "))
  # vamos mostrar o momento fletor na distância informada
  if distancia_temp > distancia:
    print("\nDistância inválida.")
  else:
    flexao_distancia = (1.0 / 2.0) * carga * distancia_temp * \
      (distancia - distancia_temp)
    print("O momento fletor na distância informada é: {0} kN".format(
      flexao_distancia))  
   
  # vamos mostrar a força cortante no apoio A
  cortante_a = (1.0 / 2.0) * carga * distancia
  print("\nA força cortante no apoio A é: {0} kN".format(cortante_a))
  
  # vamos mostrar a força cortante no apoio B
  cortante_b = cortante_a * -1
  print("A força cortante no apoio B é: {0} kN".format(cortante_b))
  
if __name__== "__main__":
  main()



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Fenômenos dos Transportes, Hidráulica e Drenagem

Exercício Resolvido de Python - 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

Quantidade de visualizações: 311 vezes
Exercício Resolvido de Python - 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

Pergunta/Tarefa:

Python para Fenômenos dos Transportes, Hidráulica e Drenagem. Python para cálculo de vazão em condutos livres. Fórmula de Manning para a velocidade de escoamento.

Neste exercício em Python veremos como calcular a vazão de um canal com seção retangular. Para isso nós vamos usar a Equação de Manning da velocidade do escoamento.

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.



Sua saída deverá ser parecida com:

Informe a Largura da Base do Canal (em metros): 3
Informe a Profundidade do Escoamento (em metros): 2
Informe a Declividade do Canal (em metros por km): 0.2
Informe o Coeficiente de Rugosidade do Canal: 0.012

A Área Molhada do Canal é: 6.0 m2
O Perímetro Molhado do Canal é: 7.0 m
O Raio Hidráulico do Canal é: 0.8571428571428571 m
A Velocidade do Escoamento é: 1.0634144533132281 m/s
A Vazão do Canal é: 6.380486719879369 m3/s
Resposta/Solução:

Veja a resolução completa para o exercício em Python, comentada linha a linha:

----------------------------------------------------------------------
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

# método principal
def main():
  # vamos ler a largura do canal em metros
  b = float(input("Informe a Largura da Base do Canal (em metros): "))

  # vamos ler a profundida do escoamento em metros
  h = float(input("Informe a Profundidade do Escoamento (em metros): "))
  
  # vamos obter a declividade do canal em metros por quilômetros
  I = float(input("Informe a Declividade do Canal (em metros por km): "))
  # vamos converter a declividade em metro por metro
  I = I / 1000.0

  # vamos ler o coeficiente de rugosidade do canal
  n = float(input("Informe o Coeficiente de Rugosidade do Canal: "))

  # vamos calcular a área molhada
  am = b * h

  #  agora vamos calcular o perímetro molhado
  pm = b + 2 * h

  # finalmente calculamos o raio hidráulico
  rh = am / pm

  # agora vamos usar a equação de manning para calcular a velocidade do escoamento
  v = math.pow(rh, 2.0 / 3.0) * (math.sqrt(I) / n)

  # finalmente calculamos a vazão do canal
  Q = am * v

  # e mostramos os resultados
  print("\nA Área Molhada do Canal é: {0} m2".format(am))
  print("O Perímetro Molhado do Canal é: {0} m".format(pm))
  print("O Raio Hidráulico do Canal é: {0} m".format(rh))
  print("A Velocidade do Escoamento é: {0} m/s".format(v))
  print("A Vazão do Canal é: {0} m3/s".format(Q))

if __name__== "__main__":
  main()



Mais Desafios de Programação e 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: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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