Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Fehler in Blockly acos

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    826

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Fehler in Blockly acos

Geplant Angeheftet Gesperrt Verschoben Entwicklung
acos
1 Beiträge 1 Kommentatoren 191 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    JanD
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich wollte das Volumen eines liegenden Zylinders in Blockly berechnen und habe dabei einen Fehler in Blockly festgestellt.
    Gibt man in blockly acos 0,8 und wechselt dann zur JS Ansicht taucht folgendes auf "erg = Math.acos(0.8) / Math.PI * 180;". An dieser Stelle ist das Math.PI*180 zu viel und verursacht in der Folge einen Fehler den man an dieser Stelle noch gar nicht merkt. Wenn ich den Fehler mit "erg= (Math.acos(my_1_h_r) / Math.PI * 180) / (Math.PI * 180);" korregiere hilft das leider nicht wirklich, da trotzdem ein Rundungsfehler entsteht der dazu führt, dass mathematisch in einen 6000 Liter Tank plötzlich 6100 Liter passen.

    Ab hier das ganze zum nachvollziehen. Hier die Formel mit Beispielrechnung, die stimmt.

    Hier das fehlerhafte Blockly zum einfügen mit der gleichen Formel (leicht geändert für Blockly)

    var h, L, r, my_1_h_r, r_C2_B2, acos1_h_r, Teil_1, test, r_h, h_C2_B2, my_2_r_h, my_2_r_h_h_C2_B2, w_aus_2_r_h_h_C2_B2, Teil_2, ZwE, Erg;
    
    
    schedule("*/5 * * * * *", function () {
      h = 158;
      L = 340;
      r = 79;
      // Erg = L * ((r²*arccos (1-(h/r))-((r-h)*Wurzel(2*r*h(-h²)))))
      // Teil 1 (r²*arccos (1-(h/r))
      my_1_h_r = 1 - h / r;
      r_C2_B2 = r * r;
      acos1_h_r = (Math.acos(my_1_h_r) / Math.PI * 180) / (Math.PI * 180);
      Teil_1 = r_C2_B2 * acos1_h_r;
      test = 19.6066797510539;
      // Teil 2 ((r-h)*Wurzel(2*r*h(-h²))))
      r_h = r - h;
      h_C2_B2 = h * h;
      my_2_r_h = 2 * r * h;
      my_2_r_h_h_C2_B2 = my_2_r_h - h_C2_B2;
      w_aus_2_r_h_h_C2_B2 = Math.sqrt(my_2_r_h_h_C2_B2);
      Teil_2 = r_h * w_aus_2_r_h_h_C2_B2;
      ZwE = Teil_1 - Teil_2;
      Erg = L * Teil_1;
      console.warn((String(Erg / 100) + '   von 6666,3L'));
    });
    
    

    Hier noch mal ein Nachbau in Java Script, der funktioniert und richtig rechnet

    var Erg , h , L , r;
    
    schedule("*/5 * * * * *", function () {
     
     h = 158;// - (getState("sonoff.0.Oel1.SR04_Distance").val); // Füllhöhe des liegenden Zylinders
     L = 340; // Länge des Zylinders
     r = 79; // Radius
    
     // Formel ********************************************************
     // Erg = L * ((r²*arccos * (1-(h/r))-((r-h)*Wurzel(2*r*h(-h²)))))
     // Prüfung https://www.scalesoft.de/math/tank/tank.html
     // ***************************************************************
    
     // Berechnung
     Erg = L * ((r * r * Math.acos(1 -(h / r)))-( r - h) * Math.sqrt(2 * r * h -(h * h)));
    
    //console.warn((String(Math.round((Erg / 1000)*10)/10) + '   von 6666,3L'));
    console.warn((String(Erg / 1000) + '   von 6666,3L'));
    });
    

    Ergebnis in Blockly trotz Korrektur "6754.344798888328 von 6666,3L"
    Richtiges Ergebnis in Java Script sowie auf der Webpage "6666.271115358326 von 6666,3L"

    Könnte man das ganze prüfen und ggf. korregieren?

    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    291

    Online

    32.6k

    Benutzer

    82.1k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe