Você está aqui: Python ::: Pygame ::: Linhas

Como desenhar linhas em determinados ângulos no Pygame

Quantidade de visualizações: 764 vezes
Nesta dica mostrarei como podemos desenhar linhas em determinados na biblioteca Pygame do Python. Note que criei um função que nos permite especificar as coordenadas x e y inicias, o ângulo de inclinação da linha e o seu comprimento, assim como a cor e sua largura.

Eis o código Pygame completo e logo abaixo a imagem com a saída resultante:

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

# vamos importar as bibliotecas necessárias
import math
import pygame, sys
from pygame.locals import *

# função personalizada que recebe as coordenadas x e y iniciais
# da linha, seu comprimento, o ângulo, sua cor e sua largura e a desenha na
# tela
def desenhar_linha_angulo(x, y, comprimento, angulo, superficie, cor, largura):
  pygame.draw.line(superficie, cor, (x, y), ( (x + 
    math.cos(angulo / 180.0 * math.pi) * comprimento),
    (y - math.sin(angulo / 180.0 * math.pi) * comprimento)), largura)

# inicializa a biblioteca
pygame.init()
# obtém a superfície do jogo e define o tamanho da tela
DISPLAYSURF = pygame.display.set_mode((500, 400), 0, 32)
# vamos definir o título da janela do jogo
pygame.display.set_caption('Como desenhar linhas em determinados ângulos no Pygame')

# vamos criar algumas cores
BRANCO = (255, 255, 255)
VERMELHO = (255, 0, 0)
AZUL = (0, 0, 255)
VERDE = (0, 255, 0)

# vamos pintar a tela toda de branco
DISPLAYSURF.fill(BRANCO)

# vamos chamar a função que desenha a linha em um determinado
# ângulo. Vou pedir para desenhar três linhas, todas em ângulos diferentes
desenhar_linha_angulo(100, 300, 300, 45, DISPLAYSURF, VERMELHO, 3)
desenhar_linha_angulo(100, 300, 500, 75, DISPLAYSURF, VERDE, 5)
desenhar_linha_angulo(100, 300, 250, -370, DISPLAYSURF, AZUL, 2)

# e aqui nós entramos no loop do game
while True:
  # monitoramos os eventos
  for evento in pygame.event.get():
   # se o evento foi um pedido para sair
   if evento.type == QUIT:
    # fechamos a tela do jogo 
    pygame.quit()
    # e saimos do programa
    sys.exit()

   # redesenha a tela continuamente 
   pygame.display.update()

Ao executarmos este código Pygame nós teremos o seguinte resultado:



Link para compartilhar na Internet ou com seus amigos:

Python ::: Dicas & Truques ::: Tupla (Tuple)

Python para iniciantes - Como usar o tipo de dados tuple da linguagem Python

Quantidade de visualizações: 9064 vezes
Uma tupla (tuple) é similar a uma lista (list), com a exceção de que uma tupla não pode ser modificada, ou seja, é imutável.

Veja como criar uma tupla contendo cinco elementos:

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

# Cria uma tupla
valores = 4, 76, 2, 98, 4

# Exibe o valor do segundo elemento
print valores[1]

# Exibe todos os elementos
for valor in valores:
  print valor,

Veja agora o que acontece quando tentamos alterar o valor de um dos elementos da tupla:

valores[4] = 50

Traceback (most recent call last):
  File "tuplas.py", line 19, in <module>
    valores[4] = 50
TypeError: 'tuple' object does not support item assignment


Contudo, a variável do tipo tupla pode ser alterada para apontar para uma tupla diferente. Veja:

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

# Cria duas tuplas
valores = 4, 76, 2, 98, 4
letras = 'A', 'B', 'C'

# Atribue os elementos de letras a valores
valores = letras

# Exibe o resultado
print valores

É comum colocar os elementos de uma tupla entre parênteses. Assim, a tupla abaixo é perfeitamente legal:

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

valores = (4, 76, 2, 98, 4)

Embora não muito provável, se precisarmos criar uma tupla de apenas um elemento, devemos inserir uma vírgula após ele. Veja:

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

valores = (4,)

Tuplas podem conter elementos de diferentes tipos de dados. Veja:

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

# Cria uma tupla contendo tipos diferentes
# de dados
cliente = (3, "Osmar J. Silva", "Goiânia", "GO", 35)

# Exibe o valor do 4º elemento
estado = cliente[3]
print estado



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

Vetores e matrizes em Python - Como inserir itens em posições aleatórias de uma lista

Quantidade de visualizações: 9499 vezes
Este exemplo mostra como adicionar itens em posições aleatórias de uma lista Python. Note como usamos o método insert() da classe List passando um valor randômico para o índice no qual o novo elemento será inserido.

Veja o código completo para a dica:

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

# vamos importar o módulo random
import random

def main():
  # cria uma lista vazia
  valores = []
 
  # início do laço for
  for i in range(1, 11):
    valor = int(input("Informe um inteiro: "))
   
    if(len(valores) == 0):
      valores.insert(0, valor)
    else:
      # insere o valor em um posição aleatória
      valores.insert(random.randrange(0, 
        len(valores)), valor)
 
    # exibe os valores da lista
    print("Valores na lista:", valores, "\n")
    # fim do laço for

if __name__== "__main__":
  main()

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

Informe um inteiro: 9
Valores na lista: [9]

Informe um inteiro: 3
Valores na lista: [3, 9]

Informe um inteiro: 2
Valores na lista: [2, 3, 9]

Informe um inteiro: 8
Valores na lista: [2, 3, 8, 9]

Informe um inteiro: 10
Valores na lista: [10, 2, 3, 8, 9]

Informe um inteiro: 18
Valores na lista: [18, 10, 2, 3, 8, 9]

Informe um inteiro: 30
Valores na lista: [18, 10, 30, 2, 3, 8, 9]

Informe um inteiro: 60
Valores na lista: [18, 10, 30, 2, 3, 8, 60, 9]

Informe um inteiro: 67
Valores na lista: [18, 10, 67, 30, 2, 3, 8, 60, 9]

Informe um inteiro: 82
Valores na lista: [18, 10, 67, 30, 2, 3, 8, 82, 60, 9]


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Hidrologia e Hidráulica

Exercícios Resolvidos de Python - FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares

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

1) FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares, considerando-se uma chuva de projeto com intensidade de 60 mm/hora, duração igual ao tempo de concentração da bacia e coeficiente de escoamento superficial igual a 0,90, através do Método Racional, é:

A) 150 m3/s

B) 0,150 l/s

C) 1,5 m3/s

D) 150 l/s

E) 15 m3/s

Sua saída deve ser parecida com:

Intensidade da chuva em mm/h: 60
Área da bacia em hectares: 10
Coeficiente de escoamento: 0.9
A vazão de dimensionamento é: 1.5 m3/s
Resposta/Solução:

O primeiro passo para resolver esta questão é relembrar a fórmula da Vazão pelo Método Racional. Apresentado pela primeira vez em 1851 por Mulvaney e usado por Emil Kuichling em 1889, o Método Racional é um método indireto e estabelece uma relação entre a chuva e o escoamento superficial (deflúvio).

Usamos esta fórmula para calcular a vazão de pico de uma determinada bacia, considerando uma seção de estudo.

Eis a fórmula:

\[Q = \frac{C \cdot I \cdot A}{360} \]

Onde:

Q = vazão de pico (m3/s);

C = coeficiente de escoamento superficial que varia de 0 a 1. Coeficiente de Runoff (adimensional).

I = intensidade média da chuva (mm/h);

A = área da bacia (ha), onde 1 ha = 10.000m2. A [[menor_igual]] 300 ha.

Na questão do concurso nós já temos a intensidade da chuva em milímetros por hora e a área já está em hectares. Tudo que temos a fazer é jogar na fórmula.

Então, hora de vermos 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)
----------------------------------------------------------------------

# função principal do programa
def main():
  # vamos ler a precipitação ou intensidade da chuva em mm/h
  intensidade = float(input("Intensidade da chuva em mm/h: "))
    
  # vamos ler a área da bacia em hectares
  area_bacia = float(input("Área da bacia em hectares: "))
  
  # vamos ler o coeficiente de escoamento
  coeficiente = float(input("Coeficiente de escoamento: "))
    
  # e vamos calcular a vazão de pico em metros cúbicos
  vazao = ((coeficiente * intensidade * area_bacia) / 360.0)
    
  # e mostramos o resultado
  print("A vazão de dimensionamento é: {0} m3/s".format(vazao))
  
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á 92 usuários muito felizes estudando em nosso site.