Tischneigung messen

D

DoubleDon

Neues Mitglied
0
Hallo und guten Tag!

Ich würde gerne mit Hilfe meines Smartphones die Neigung eines Tisches (feste Maße) messen, also sowas in wie weit man den Tisch an einer Seite anheben muss damit dieser gerade steht.

Habt ihr eine Ahnung wie man da vorgeht?

Meine Idee war es das Handy 2x messen zu lassen, d.h. es in die Mitte des Tisches zu legen und dann jeweils ein mal diagonal die Neigung aufzunehmen und daraus was schönes zu errechnen.

Ist das ein richtiger Ansatz oder gibt es da einfachere Methoden?
Wie würdet ihr vorgehen und mit welchem Sensor?

lG
 
Position Sensors | Android Developers

Wobei es da ja zig Wasserwaagen Apps schon gibt.
Dazu muss aber auch gesagt werden, dass es stark auf die Sensoren des Telefons ankommt wie gut das funktioniert.
Wenn es wirklich gerade sein muss, geht nichts über eine gute alte echte Wasserwaage ;)
 
Hallo.
Ich habe mit einer bereits vorhandenen app (Tool Box hieß die glaube ich) recht gute Erfahrungen mit der Genauigkeit gemacht.. Darüber hinaus bin ich mir fast sicher dass eine einzige Messung schon ausreichend ist.
Durch die XYZ Achsen lässt sich die Neigung mit einer Messung vollständig erfassen. Den Rest kann man Annäherungsweise mit dem Dreisatz berechnen (beim schiefen Tisch ist es ja kein rechter Winkel - deswegen annäherungsweise)
 
ja ich habe noch einige Probleme mich da irgendwie reinzufinden..

Ablauf:
Ich lege das Handy in die Mitte des Tisches. Hole mir mit Hilfe von getDefaultSensor(Sensor.TYPE_ORIENTATION); die 3 Werte und berechne damit und mit
Code:
onSensorChanged
        double tischRadius = 70.0;
        double achseZ = Math.floor(sensorEvent.values[0] * 100)/100.0;
        double achseY = Math.floor(sensorEvent.values[1] * 100)/100.0;
        double achseX = Math.floor(sensorEvent.values[2] * 100)/100.0;
        double verstellen = Math.tan(Math.toRadians(achseY))*tischRadius;
        hFld.setText(verstellen + "");
        xFld.setText(achseZ + "");
        yFld.setText(achseY + "");
        zFld.setText(achseX + "");
die Höhe.

Ist das so vom Prinzip richtig oder würdet ihr das mit nem anderen Sensor machen?
 
Warum *100 / 100?
Grundsätzlich sieht das für einen runden Tisch doch schon mal ganz gut aus :)
 
Mit
Math.floor(sensorEvent.values[0] * 100)/100.0;
rundest du auf 2 Nachkommastellen.

Mein Problem ist nur, dass ich keine Ahnung habe wie ich mit Hilfe von den X und Y Werten welche für 4 Ecken herausbekommen kann.

Kann mir da jemand weiterhelfen?
 
Vielleicht hilft dir das...
Device Orientation: Neigung und Position von Mobilgeräten in JavaScript nutzen » t3n
Mae vom Dreieck berechnen - Seiten Hhe Winkel Flcheninhalt Seite Formel

Ich denke mit nem Stift und nem Blattpapier lässt sich gut "herausfinden" welche Gleichungen nun wichtig sind. Kann mir vorstellen, dass du noch ein EditText brauchst um anzugeben, welche Höhe der Tisch hat bzw. wie lang die Strecke vom Messpunkt bis zum Ende ist (bzw. die gesamte Länge wäre wahrscheinlich auch nicht verkehrt)...

btw:
Warum rundest du da schon? Im Prinzip kostet es an dieser Stelle nur unnötig Rechenleistung (auch wenn diese definitiv nicht ins Gewicht fällt) und das Ergebnis wird schon ungenauer.
Vielleicht wäre es sinnvoller am Ende einfach die überschüssigen Stellen zu streichen.
 

Ähnliche Themen

Muecke1982
Antworten
8
Aufrufe
1.034
Skyhigh
Skyhigh
fromfuture
  • fromfuture
Antworten
0
Aufrufe
874
fromfuture
fromfuture
Zurück
Oben Unten