from pyscript import document import math def lees_getal(id_naam): waarde = document.getElementById(id_naam).value.strip() if waarde == "": return None return float(waarde) def bereken(event): antwoord = document.getElementById("antwoord") keuze = document.getElementById("keuze").value formule = document.getElementById("formule").value te_berekenen = document.getElementById("te_berekenen").value try: hoek = lees_getal("hoek") schuine = lees_getal("schuine") aanliggende = lees_getal("aanliggende") overstaande = lees_getal("overstaande") except ValueError: antwoord.innerText = "Vul alleen geldige getallen in." return if keuze == "": antwoord.innerText = "Kies eerst of je een hoek of een zijde wilt berekenen." return if formule == "": antwoord.innerText = "Kies eerst sinus, cosinus of tangens." return # HOEK BEREKENEN if keuze == "hoek": try: if formule == "sin": if overstaande is None or schuine is None: antwoord.innerText = "Vul de overstaande en schuine zijde in." return if overstaande <= 0 or schuine <= 0 or overstaande > schuine: antwoord.innerText = "De waarden voor sinus zijn ongeldig." return uitkomst = math.degrees(math.asin(overstaande / schuine)) antwoord.innerText = f"Hoek = {uitkomst}°" elif formule == "cos": if aanliggende is None or schuine is None: antwoord.innerText = "Vul de aanliggende en schuine zijde in." return if aanliggende <= 0 or schuine <= 0 or aanliggende > schuine: antwoord.innerText = "De waarden voor cosinus zijn ongeldig." return uitkomst = math.degrees(math.acos(aanliggende / schuine)) antwoord.innerText = f"Hoek = {uitkomst}°" elif formule == "tan": if overstaande is None or aanliggende is None: antwoord.innerText = "Vul de overstaande en aanliggende zijde in." return if overstaande <= 0 or aanliggende <= 0: antwoord.innerText = "De waarden voor tangens zijn ongeldig." return uitkomst = math.degrees(math.atan(overstaande / aanliggende)) antwoord.innerText = f"Hoek = {uitkomst}°" else: antwoord.innerText = "Ongeldige formule." return except ValueError: antwoord.innerText = "Deze berekening kan niet worden uitgevoerd met de ingevulde waarden." return # ZIJDE BEREKENEN elif keuze == "zijde": if hoek is None: antwoord.innerText = "Vul een hoek in." return if hoek <= 0 or hoek >= 90: antwoord.innerText = "De hoek moet groter zijn dan 0 en kleiner dan 90 graden." return hoek_rad = math.radians(hoek) if te_berekenen == "": antwoord.innerText = "Kies welke zijde je wilt berekenen." return try: if formule == "sin": if te_berekenen == "overstaande": if schuine is None or schuine <= 0: antwoord.innerText = "Vul een geldige schuine zijde in." return uitkomst = math.sin(hoek_rad) * schuine antwoord.innerText = f"Overstaande zijde = {uitkomst}" elif te_berekenen == "schuine": if overstaande is None or overstaande <= 0: antwoord.innerText = "Vul een geldige overstaande zijde in." return uitkomst = overstaande / math.sin(hoek_rad) antwoord.innerText = f"Schuine zijde = {uitkomst}" else: antwoord.innerText = "Met sinus kun je hier alleen overstaande of schuine zijde berekenen." return elif formule == "cos": if te_berekenen == "aanliggende": if schuine is None or schuine <= 0: antwoord.innerText = "Vul een geldige schuine zijde in." return uitkomst = math.cos(hoek_rad) * schuine antwoord.innerText = f"Aanliggende zijde = {uitkomst}" elif te_berekenen == "schuine": if aanliggende is None or aanliggende <= 0: antwoord.innerText = "Vul een geldige aanliggende zijde in." return uitkomst = aanliggende / math.cos(hoek_rad) antwoord.innerText = f"Schuine zijde = {uitkomst}" else: antwoord.innerText = "Met cosinus kun je hier alleen aanliggende of schuine zijde berekenen." return elif formule == "tan": if te_berekenen == "overstaande": if aanliggende is None or aanliggende <= 0: antwoord.innerText = "Vul een geldige aanliggende zijde in." return uitkomst = math.tan(hoek_rad) * aanliggende antwoord.innerText = f"Overstaande zijde = {uitkomst}" elif te_berekenen == "aanliggende": if overstaande is None or overstaande <= 0: antwoord.innerText = "Vul een geldige overstaande zijde in." return uitkomst = overstaande / math.tan(hoek_rad) antwoord.innerText = f"Aanliggende zijde = {uitkomst}" else: antwoord.innerText = "Met tangens kun je hier alleen overstaande of aanliggende zijde berekenen." return else: antwoord.innerText = "Ongeldige formule." return except ValueError: antwoord.innerText = "Deze berekening kan niet worden uitgevoerd met de ingevulde waarden." return else: antwoord.innerText = "Ongeldige keuze."