Mundo em Python

Calculador de altura aproximada de ondas

def kmh_para_ms(vel_kmh):
return vel_kmh / 3.6


def altura_onda_hs(vento_ms):
return 0.016 * (vento_ms ** 2)
from tkinter import * root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calculador de altura aproximada de ondas") titulo = Label(text="Calculador de altura aproximada de ondas",
font=("Arial", 25, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.03, rely=0.05) texto_sub1 = Label(text="Velocidade do vento :",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25) texto_sub2 = Label(text="O vento está em:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.34) Velocidade_vento = StringVar()
Velocidade_vento_entrada = Entry(textvariable=Velocidade_vento,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Velocidade_vento_entrada.place(relx=0.48, rely=0.26, relwidth=0.45)
Velocidade_vento_entrada.focus() var = StringVar()
dropDownList = ["km/h", "m/s"]
resultado_label = Label(text="",
font=("Arial", 14),
bg="#103030", fg="white", justify="left")
resultado_label.place(relx=0.05, rely=0.6)
def app():
try:
v = var.get()
velocidade = float(Velocidade_vento.get()) if v == "km/h":
vento_ms = kmh_para_ms(velocidade)
else:
vento_ms = velocidade hs = altura_onda_hs(vento_ms) mensagem = f"Resultados:\nVelocidade do vento: {vento_ms:.2f} m/s\n" \
f"Altura significativa da onda (Hs): {hs:.2f} m"

resultado_label.config(text=mensagem) except ValueError:
resultado_label.config(text="⚠️ Insere um valor válido!")
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.48, rely=0.34, relwidth=0.25)
dropdown.config(background='#09A3BA', foreground="#FFFFFF",
font=("Arial", 15, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF",
font=("Arial", 15, "bold")) botao = Button(root, text="Calcular",
font=("Arial", 14, "bold"),
bg="#49e3e3", fg="black",
command=app)
botao.place(relx=0.48, rely=0.45, relwidth=0.25) root.mainloop()
0