Javascript-forum

Normale Version: Sinus Berechnungs Problem
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin, bin momentan dran eine Sinusfunktion zur Dreiecks Berechnung zu erstellen(SSW), aber irgendwie klappt die momentane Rechnung nicht, kann mir da jemand weiterhelfen?


Code:

   winkel2 = Math.asin(Math.sin(winkel1) / seite1 * seite2) / Math.PI * 180;
    console.log(winkel2);
    winkel3 = berechneW3(winkel1, winkel2);
    console.log(winkel3);
    seite3 = seite2 * Math.sin(winkel3) / Math.sin(winkel1);


Hi bl,

könntest du auch die vorgegebenen Werte Wie Seiten und Winkel angeben, dann könnte ich auch eine Formel zusammen basteln.

Code:
winkel2 = Math.asin(Math.sin(winkel1) / seite1 * seite2) / Math.PI * 180;
    console.log(winkel2);
    winkel3 = berechneW3(winkel1, winkel2);
    console.log(winkel3);
    seite3 = seite2 * Math.sin(winkel3) / Math.sin(winkel1);
VG

scoutrz
Seite a (Seite1): 10 cm
Seite c (Seite2): 6 cm
Winkel gamma (Winkel1): 36.87 grad

die Seiten und Winkel werden im Nachhinein auch nochmal automatisch sortiert was soweit auch funktioniert.

Code:
let input = ["","","","",""];
let seite1;
let seite2;
let seite3;
let winkel1;
let winkel2;
let winkel3;
let welcheRechnungString;

function Ergebnis() {
    input[0] = document.getElementById('a').value.replace(/[',']/g, '.'); //Seite A
    input[1] = document.getElementById('b').value.replace(/[',']/g, '.'); //Seite B
    input[2] = document.getElementById('c').value.replace(/[',']/g, '.'); //Seite C
    input[3] = document.getElementById('alpha').value.replace(/[',']/g, '.'); //Winkel alpha
    input[4] = document.getElementById('beta').value.replace(/[',']/g, '.'); //Winkel beta
    input[5] = document.getElementById('gamma').value.replace(/[',']/g, '.'); //Winkel gamma

    let welcheRechnung = ["0","0","0","0","0","0"];
     /*
    input[0] = A
    input[1] = B
    input[2] = C
    input[3] = Alpha
    input[4] = Beta
    input[5] = Gamma
    */
    for (let i = 0; i < 6; i++) {
        if (! input[i] == "") {
            welcheRechnung[i] = "1";
        }
    }
    welcheRechnungString = welcheRechnung.toString().replace(/[',']/g, '');
    console.log("Rechnungsmodel welches aufgerufen wurde:",welcheRechnungString);
    switch (welcheRechnungString) { // überprüfen! bei funktioniert = +
        case "111000": //
            seite1 = input[0];
            seite2 = input[1];
            seite3 = input[2];
            dreiSeiten();
            break;
        case "110001": //
            seite1 = input[0];
            seite2 = input[1];
            winkel1 = input[5];
            zweiSeitenEinWinkelSonder();
            break;
        case "110010": //
            seite1 = input[1];
            seite2 = input[0];
            winkel1 = input[4];
            zweiSeitenEinWinkel();
            break;
        case "110100": //
            seite1 = input[0];
            seite2 = input[1];
            winkel1 = input[3];
            zweiSeitenEinWinkel();
            break;
        case "011001": //
            seite1 = input[2];
            seite2 = input[1];
            winkel1 = input[5];
            zweiSeitenEinWinkel();
            break;
        case "011010": //
            seite1 = input[1];
            seite2 = input[2];
            winkel1 = input[4];
            zweiSeitenEinWinkel();
            break;
        case "011100": //
            seite1 = input[1];
            seite2 = input[2];
            winkel1 = input[3];
            zweiSeitenEinWinkelSonder();
            break;
        case "101001": //
            seite1 = input[0];
            seite2 = input[2];
            winkel1 = input[5];
            zweiSeitenEinWinkeltest();
            break;
        case "101010": //
            seite1 = input[0];
            seite2 = input[2];
            winkel1 = input[4];
            zweiSeitenEinWinkelSonder();
            break;
        case "101100": //
            seite1 = input[0];
            seite2 = input[2];
            winkel1 = input[3];
            zweiSeitenEinWinkel();
            break;
        case "100011": //
            seite1 = input[0];
            winkel1 = input[4];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        case "100110": //
            seite1 = input[0];
            winkel1 = input[3];
            winkel2 = input[4];
            zweiWinkelEineSeite();
            break;
        case "100101": //
            seite1 = input[0];
            winkel1 = input[3];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        case "010011": //
            seite1 = input[1];
            winkel1 = input[4];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        case "010110": //
            seite1 = input[1];
            winkel1 = input[3];
            winkel2 = input[4];
            zweiWinkelEineSeite();
            break;
        case "010101": //
            seite1 = input[1];
            winkel1 = input[3];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        case "001011": //
            seite1 = input[2];
            winkel1 = input[4];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        case "001110": //
            seite1 = input[2];
            winkel1 = input[3];
            winkel2 = input[4];
            zweiWinkelEineSeite();
            break;
        case "001101": //
            seite1 = input[2];
            winkel1 = input[3];
            winkel2 = input[5];
            zweiWinkelEineSeite();
            break;
        default:
            fehlerAusgabe();
    }

}

function fehlerAusgabe() { // mehr verschiedene Fehler um lösung zu bekommen!
    alert("Es ist ein Fehler aufgetreten, bitte überprüfe deine Eingaben oder versuch es später erneut.")
}

function dreiSeiten() {
    winkel1 = Math.acos((Math.pow(seite1,2) - Math.pow(seite2,2) - Math.pow(seite3,2)) / (-2 * seite2 * seite3)) / Math.PI * 180;
    winkel2 = Math.acos((Math.pow(seite2,2) - Math.pow(seite1,2) - Math.pow(seite3,2)) / (-2 * seite1 * seite3)) / Math.PI * 180;
    winkel3 = berechneW3(winkel1, winkel2);
    sortierung();
}

function zweiSeitenEinWinkel() {

    sortierung();
}

function zweiSeitenEinWinkelSonder() {

    sortierung();
}

function zweiWinkelEineSeite() {

    sortierung();
}

function berechneW3(w1, w2) {
    let w3 = 180 - w1 - w2;
    return w3;
}
function gradZuRad(grad)
{
    return grad * Math.PI / 180;
}

function radZuGrad(rad)
{
    return rad * 180/ Math.PI;
}



function sortierung() {
    switch (welcheRechnungString) { // überprüfen!
        case "111000":
            input = [seite1, seite2, seite3, winkel1, winkel2, winkel3];
            ausgabe();
            break;
        case "110001":
            input = [seite1, seite2, seite3, winkel2, winkel3, winkel1];
            ausgabe();
            break;
        case "110010":
            input = [seite1, seite2, seite3, winkel2, winkel1, winkel3];
            ausgabe();
            break;
        case "110100":
            input = [seite1, seite2, seite3, winkel1, winkel2, winkel3];
            ausgabe();
            break;
        case "011001":
            input = [seite3, seite1, seite2, winkel3, winkel2, winkel1];
            ausgabe();
            break;
        case "011010":
            input = [seite3, seite1, seite2, winkel3, winkel1, winkel2];
            ausgabe();
            break;
        case "011100":
            input = [seite3, seite1, seite2, winkel1, winkel2, winkel3];
            ausgabe();
            break;
        case "101001":
            input = [seite1, seite3, seite2, winkel2, winkel3, winkel1];
            ausgabe();
            break;
        case "101010":
            input = [seite1, seite3, seite2, winkel2, winkel1, winkel3];
            ausgabe();
            break;
        case "101100":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            ausgabe();
            break;
        case "100011": // ab hier 2 winkel und eine seite noch einstellen
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "100110":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "100101":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "010011":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "010110":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "010101":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "001011":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "001110":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        case "001101":
            input = [seite1, seite3, seite2, winkel1, winkel3, winkel2];
            break;
        default:
            fehlerAusgabe();
    }
}

function ausgabe() {
    document.getElementById('ausgabeA').value = input[0];
    document.getElementById('ausgabeB').value = input[1];
    document.getElementById('ausgabeC').value = input[2];
    document.getElementById('ausgabeAlpha').value = input[3];
    document.getElementById('ausgabeBeta').value = input[4];
    document.getElementById('ausgabeGamma').value = input[5];
}