Forum: PC-Programmierung Denkaufgabe - Sprachenübergreifend


von Winston Barth (Gast)


Lesenswert?

Unter http://www.youtube.com/watch?v=XwwJkF9KDOA findest du ein Video. 
Dieses zeigt symbolhaft ein Mobiltelefon, das am Hinterkopf eines 
Menschen angebracht ist. Die weißen Kugeln symbolisieren die Augen, 
Drehung geschieht um den Hals in den Freiheitsgraden, die ein Kopf hat.

Das Display des Mobiltelefones zeigt nach außen. Es hat einen 
Schwerkraftkompensierten 3D-Beschleunigungssensor. Das heißt, wird der 
Kopf beschleunigt, wird auch das Mobiltelefon beschleunigt, und - nicht 
vergessen - negativ beschleunigt beim Abbremsen.

Wie es bei Headtrackern so ist, soll die Bewegung auf Mausbewegung 
umgelenkt werden. Das ist soweit kein Problem. Auch die Daten vom Handy 
zu gewinnen ist kein Problem.

Nein, es ist ein Logikproblem, aus den X, Y und Z-Komponenten der 
Beschleunigung(siehe http://developer.android.com/images/axis_device.png 
) relative Mausbewegungen abzuleiten.

Die Frage ist konkret: Wie muß - bei den im Video gezeigten 
Bewegungen(merke, das Mobiltelefon ist gekippt) - eine Funktion 
X_Maus_relativ = f(X_Handy,Y_Handy,Z_Handy) und Y_Maus_relativ = 
f(X_Handy,Y_Handy,Z_Handy) aussehen?

Wenn keine Idee, besseres Forum für die Frage vorschlagen.

von Rolf Magnus (Gast)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Winston Barth schrieb:

> Nein, es ist ein Logikproblem, aus den X, Y und Z-Komponenten der
> Beschleunigung(siehe http://developer.android.com/images/axis_device.png
> ) relative Mausbewegungen abzuleiten.

eigentlich ist das auch kein Logikproblem, sondern ein ganz banales 
'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik

Geschwindigkeit = Integral( Beschleunigung dt )
Ort = Integral( Geschwindigkeit dt )

das und ein wenig Vektor bzw Matrizenrechnung, hinten nach noch eine 
DIfferenzbildung um die Orts-Veränderung festzustellen und die Sache ist 
gegessen

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Winston Barth schrieb:
> Unter http://www.youtube.com/watch?v=XwwJkF9KDOA findest du ein Video.
> Dieses zeigt symbolhaft ein Mobiltelefon, das am Hinterkopf eines
> Menschen angebracht ist. Die weißen Kugeln symbolisieren die Augen,
> Drehung geschieht um den Hals in den Freiheitsgraden, die ein Kopf hat.
>
> Das Display des Mobiltelefones zeigt nach außen. Es hat einen
> Schwerkraftkompensierten 3D-Beschleunigungssensor. Das heißt, wird der
> Kopf beschleunigt, wird auch das Mobiltelefon beschleunigt, und - nicht
> vergessen - negativ beschleunigt beim Abbremsen.
>
> Wie es bei Headtrackern so ist, soll die Bewegung auf Mausbewegung
> umgelenkt werden.

So wie das Video aussieht, wird mit der Maus das Kopf-Modell gedreht 
bzw. die Ansicht darauf.

> Das ist soweit kein Problem. Auch die Daten vom Handy
> zu gewinnen ist kein Problem.

Die braucht's dazu doch garnicht?

Und was hat das alles mit "Sprache" zu tun?

Wenn überhaupt, ist das ein arithmetischen Problem, kein sprachliches.

von Winston Barth (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales
> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik
>
> Geschwindigkeit = Integral( Beschleunigung dt )
> Ort = Integral( Geschwindigkeit dt )
So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².

Weg_x = Beschleunigung_x * (Zeit)²
Weg_y = Beschleunigung_y * (Zeit)²
Weg_z = Beschleunigung_z * (Zeit)²

Und was ist Zeit?

>
> das und ein wenig Vektor bzw Matrizenrechnung, hinten nach noch eine
> DIfferenzbildung um die Orts-Veränderung festzustellen und die Sache ist
> gegessen

Wenns so trivial ist, rechne es doch mal aus. Ich finde das kein bißchen 
trivial.

Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann. 
Findet wieder zu diesem Ton zurück. Danke.

von Robert L. (lrlr)


Lesenswert?

>Und was ist Zeit?

irrelevant, mal hautpsächlich..

am besten nimmst du die bildwiederholfrequenz vom monitor (60Hz z.b.)

also 1/60 sekunde



>relative Mausbewegungen abzuleiten.

dazu musst du erstmal definieren WIE/WANN sich die maus bewegen soll

z.B: soll sie, wenn man nach rechts schaut immer nach rechts fahren 
solange bis man wieder mittig schaut(wie ein joystick)?

was ist wenn man den kopf links/rechts bewegt (ohne drehung)

oder den kopf schwenkt?

oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer 
maus entsprechen)

usw. usw.

solange du nichts davon definierst, kannst du auch nichts ausrechnen

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Winston Barth schrieb:
> Karl Heinz Buchegger schrieb:
>> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales
>> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik
>>
>> Geschwindigkeit = Integral( Beschleunigung dt )
>> Ort = Integral( Geschwindigkeit dt )
> So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².

Nö, das ist nur dann der Fall, wenn die Beschleunigung konstant ist.

Allgemein:

von Winston Barth (Gast)


Lesenswert?

Robert L. schrieb:

> am besten nimmst du die bildwiederholfrequenz vom monitor (60Hz z.b.)

also etwa 2 m/s²  * 0.167. Steht dort 2m/s² als Beschleunigung in 
Richtung X, hat sich das Handy 33 mm in X-Richtung seit dem letzten Bild 
bewegt.

>>relative Mausbewegungen abzuleiten.
>
> dazu musst du erstmal definieren WIE/WANN sich die maus bewegen soll

>
> was ist wenn man den kopf links/rechts bewegt (ohne drehung)
Dann soll sich die Maus nach links/rechts bewegen(Y_Maus_relativ = 0).

> oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer
> maus entsprechen)
Genau so soll es sein. Allerdings habe ich eine relative Bewegung, also 
etwa "20 Einheiten nach links". Das heißt, wenn die Maus dort ist, wo 
ich hinschaue, soll die rel. Bewegung X_Maus_relativ = 0 & 
Y_Maus_relativ = 0 sein.

von Winston Barth (Gast)


Lesenswert?

Johann L. schrieb:
> Allgemein:

Und was nutzt mir diese Formel jetzt?

von Winston Barth (Gast)


Lesenswert?

Winston Barth schrieb:
> Johann L. schrieb:
>> Allgemein:
>
> Und was nutzt mir diese Formel jetzt?

Deine Formel ist völliger Blödsinn. Wenn du keine Variable definierst 
hat sie Null aussagekraft.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Winston Barth schrieb:
> Deine Formel ist völliger Blödsinn.

Nein, die Formel ist völlig korrekt und gibt das wieder, was Karl Heinz
oben schon geschrieben hat:

Karl Heinz Buchegger schrieb:
> Geschwindigkeit = Integral( Beschleunigung dt )
> Ort = Integral( Geschwindigkeit dt )

Winston Barth schrieb:
> Wenn du keine Variable definierst hat sie Null aussagekraft.

Die Variablen sind so definiert, wie in der Physik üblich:

  a: Beschleunigung
  v: Geschwindigkeit
  s: Weg
  t: Zeit

Die großen, langestreckten 'S' sind Integralzeichen. Habe ich noch etwas
vergessen?

von Karl H. (kbuchegg)


Lesenswert?

Winston Barth schrieb:
> Karl Heinz Buchegger schrieb:
>> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales
>> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik
>>
>> Geschwindigkeit = Integral( Beschleunigung dt )
>> Ort = Integral( Geschwindigkeit dt )
> So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².

No.
Du musst das schon genau so machen, wie in der Vorgabe.
Erst die Beschleunigung zur Geschwindigkeit summieren.
und dann die Geschwindigkeit zum Weg aufsummieren.

Wenn du beschleunigst und so eine Geschwindigkeit aufbaust und dann 
plötzlich aufhörst zu beschleunigen, bewegst du dich nach wie vor 
weiter. Weil du bereits eine Geschwindigkeit aufgebaut hast.

> Wenns so trivial ist, rechne es doch mal aus. Ich finde das kein bißchen
> trivial.

  double dt = ......;  // in welchen Zeitabständen du auch immer
                       // dann die Beschleunigung misst
  vector3D acceleration, velocity, position;

  while( 1 ) {

    acceleration = ....;
    velocity += acceleration * dt;
    position += velocity * dt;
  }

wo ist da jetzt das Problem?

von Winston Barth (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:

> wo ist da jetzt das Problem?
Du hast die Geometrie gänzlich vernachlässigt. X-Handy ungleich X-Maus.

von Klaus W. (mfgkw)


Lesenswert?

Winston Barth schrieb:
> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.
> Findet wieder zu diesem Ton zurück. Danke.

Ausgesuchte Höflichkeit kann ich in deinen Texten auch nicht 
feststellen.
Alleine deshalb mache ich mir schon gar keine Gedanken um dein Problem.

Sind wir hier deine Lakaien, oder was?

von René Z. (dens)


Lesenswert?

Johann L. schrieb:
> Und was hat das alles mit "Sprache" zu tun?

Ich glaube er meinte (programmier)sprachenübergreifend...

von Winston Barth (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> Winston Barth schrieb:
>> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.
>> Findet wieder zu diesem Ton zurück. Danke.
>
> Ausgesuchte Höflichkeit kann ich in deinen Texten auch nicht
> feststellen.
> Alleine deshalb mache ich mir schon gar keine Gedanken um dein Problem.
>
> Sind wir hier deine Lakaien, oder was?

Du kannst auch nur stänkern, oder!?

von Klaus W. (mfgkw)


Lesenswert?

nö.
Aber bei manchen mache ich es gerne.

Hast du hier schon mal etwas sinnvolles beigetragen?

von Winston Barth (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> nö.
> Aber bei manchen mache ich es gerne.

Wenn ich hier Moderator wäre würde ich Klaus nun sperren.

von Klaus W. (mfgkw)


Lesenswert?

Ich vielleicht auch.

Immerhin kannnst du den Beitrag ja melden, dann wird mein Gemecker 
vielleicht gelöscht.
Das ändert aber nichts an dem Umstand, daß du hier ankommst, etwas 
gelöst haben willst ohne vorher mal selber nach den Grundlagen gesucht 
zu haben, und dann herumkommandierst, wie man dir gefälligst zu helfen 
hat.

Das ist alles soweit halbwegs normal, wenn auch nicht schön.
Aber mit deinem Umgangston dann von anderen mehr Höflichkeit zu 
verlangen, ist überdurchschnittlich dreist.

Also: was hast du dir schon selbst an Grundlagen gesucht?
Koordinatentransformation vielleicht?
Mal ein Mathebuch gesehen? Welches? Von außen oder auch von innen?
Was genau hast du daran dann nicht verstanden?

von Klaus W. (mfgkw)


Lesenswert?

Winston Barth schrieb:
> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.
> Findet wieder zu diesem Ton zurück. Danke.

Noch allgemeiner:
Ist es der Sinn eines Forums, daß jemand etwas lustiges im Internet 
findet und sich dann hier die Formeln dazu abholt, ohne selber denken zu 
müssen?

von Robert L. (lrlr)


Lesenswert?

>> oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer
>> maus entsprechen)
>Genau so soll es sein.

aha

das funktioniert nicht (zumindest nicht mit den "angaben" die du bisher 
gemacht hast)

beschleunigung in x y z ist da zu wenig (rotation um x y und z hast du 
ja auch)

in der praxis wird es dann auch noch daran scheitern, dass die augen wo 
anders hin schauen, als der kopf gedreht ist..


man könnte es aber auch VIEL einfacher machen, in dem man davon ausgeht, 
dass der kopf an einer fixen stelle bleibt, und sich  nur dreht...

dann brauchst du nur 2 achsen (zum/vom monitor geht dann ja nicht)...

von Winston Barth (Gast)


Lesenswert?

Robert L. schrieb:
> man könnte es aber auch VIEL einfacher machen, in dem man davon ausgeht,
> dass der kopf an einer fixen stelle bleibt, und sich  nur dreht...
>
> dann brauchst du nur 2 achsen (zum/vom monitor geht dann ja nicht)...

so soll es sein

von Winston Barth (Gast)


Lesenswert?

Dennoch gibt es ein Problem mit den Achsen. Drehe ich den Kopf von links 
nach rechts während ich nach unten schaue bekomme ich nicht die gleichen 
Werte aber invertiert für X wenn ich von links oben nach rechts oben 
schaue.

Hier kommen alle drei Beschleunigungen ins Spiel, die Richtung des 
a-Vektor verändert sich von oben nach unten.

Das wiederum läßt sich mit dem Analysieren der Geometrie lösen, was mir 
zu schwer ist.

Es ist alles andere als trivial, meine Herren.

von Winston Barth (Gast)


Lesenswert?

Wichtig ist zu wissen, daß ich vom Handy diskrete Beschleunigungswerte 
bekomme in kurzen aber unterschiedlichen Intervallen. Wenn ich jetzt 
über die Zeit integriere, müßte ich einige Zeiteinheiten abwarten, um 
von hier zu dort zu integrieren.

Das Ergebnis wird keinen Sinn ergeben.

von Klaus W. (mfgkw)


Lesenswert?

KHB hat dir doch oben die Formeln genannt zum näherungsweisen 
Integrieren mit diskreten Werten.
Wenn du jetzt keine konstanten Intervalle hast, ändert sich halt 
jedesmal das dt - aber sonst bleibt alles beim Alten.
Oder wo ist das Problem?

von Robert L. (lrlr)


Lesenswert?

wenn der kopf also fix ist, ist das doch (extrem) einfach:

ich würde da nix integriern (wozu auch)

>diskrete Beschleunigungswerte
>bekomme in kurzen aber unterschiedlichen Intervallen.
(warum fragst du weiter oben nach der ZEIT, wenn die eh fix vorgegeben 
ist??)

einfach die Zeit (zwischen dem letzten wert und jetzt) multipliziert mit 
der beschleunigung  ergibt die geschwindigkeitszunahme (oder abnahme)

das addierst du zu deiner "letzten" geschwindigkeit ergibt die neue 
aktuelle geschwindigkeit

die selbe zeit wie oben multipliziert mit der geschwindigkeit = strecke
(dies addierst du zum aktuellen standpunkt)

das ganze auch für die 2. achse..

fertig

(das läuft zwar irgendwann wegen rundungsdifferenzen und 
messungenauigkeiten extrem aus dem ruder, aber ein paar minuten lang 
wird das schon gehen...)

von Karl H. (kbuchegg)


Lesenswert?

Winston Barth schrieb:

> Das wiederum läßt sich mit dem Analysieren der Geometrie lösen, was mir
> zu schwer ist.

Tja.
Dann wirds eben nichts.

Es gibt eben doch einen Unterschied zwischen
  möchten - wollen - können

> Du hast die Geometrie gänzlich vernachlässigt. X-Handy ungleich X-Maus.
Weiß ich. Aber ein bißchen was soll ja auch für dich bleiben.

Sonst geht's dir am Ende so wie dem Walter Maischberger, dass du die 
anderen fragen musst: Und wo war da jetzt meine Leistung?

von Winston Barth (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Tja.
> Dann wirds eben nichts.
Mit deiner Hilfe wohl wahr.

>> Du hast die Geometrie gänzlich vernachlässigt. X-Handy ungleich X-Maus.
> Weiß ich. Aber ein bißchen was soll ja auch für dich bleiben.

Genau, die restlichen kleinen 95 Prozent um die sich die Frage dreht.

Warum ist Klaus noch nicht gebannt?

von Klaus W. (mfgkw)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Tja.
> Dann wirds eben nichts.

Mann, bist du heute herzlos.
Willst du dich nicht gleich selbst bannen?
Rein vorsorglich... :-)

von Karl H. (kbuchegg)


Lesenswert?

Klaus Wachtler schrieb:
> Karl Heinz Buchegger schrieb:
>> Tja.
>> Dann wirds eben nichts.
>
> Mann, bist du heute herzlos.

Ich schreib ihm doch jetzt keine 5 Seiten Kurz-Abhandlung über 3D 
Geometrie und wie man Koordiatensystemtransformationen mittels Matrizen 
in den Griff kriegt.

> Willst du dich nicht gleich selbst bannen?
> Rein vorsorglich... :-)

Hmm. Könnt ich natürlich tun.
Aber ich denke, ich belass es heute mal bei einer Verwarnung.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Winston Barth schrieb:
> Wenn ich hier Moderator wäre würde ich Klaus nun sperren.

Bist du aber glücklicherweise nicht, und ich glaube Andreas genug
zu kennen, dir zu versichern: mit dem Benehmen wirst du das hier
auch nie werden.

Ein Freund von mir würde deine Herangehensweise wohl mit den Worten
kommentieren: "Zu faul, einen Eimer Wasser umzuwerfen, der schon
auf der Kippe steht."

Du hast nun schon alles vorgesetzt bekommen, von der vollständigen
analytisch exakten mathematischen Beschreibung bis zu einer
Andeutung, wie man das in der Praxis näherungsweise umsetzen kann,
aber den verbliebenen Rest darfst du schon noch selbst erledigen,
so dich das Thema denn ernsthaft interessiert.

von Noname (Gast)


Lesenswert?

>Aber ich denke, ich belass es heute mal bei einer Verwarnung.

Na aber... Reiss Dich mal am Riemen Mensch. Man kriegt niemals ein paar 
Salzburger Nockerln zu Deinen Antworten. Dabei mag ich die so. ;-)

von Stefanie B. (sbs)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Hmm. Könnt ich natürlich tun.
> Aber ich denke, ich belass es heute mal bei einer Verwarnung.

Komisch.. Ich habe den Beitrag schon zweimal gemeldet und er ist immer 
noch da. ;)

von Uwe (Gast)


Lesenswert?

Ich glaube er hat einfach Probleme kontinuierliche mathematische 
Lösungen in Diskrete umzu... ähh umzustellen, umzudeuten ?! Wie auch 
immer.
Also zB. Abtastintervall als Zeit zu sehen und die Formel in einen 
diskretisierten Algorithmus in irgendeiner Sprache (Programmiersprache) 
zu bringen.

von Karl H. (kbuchegg)


Lesenswert?

Uwe schrieb:
> Ich glaube er hat einfach Probleme kontinuierliche mathematische
> Lösungen in Diskrete umzu... ähh umzustellen, umzudeuten ?! Wie auch
> immer.

Was ich glaube:

Ich glaube er hat das übliche Problem:
Können mit Wollen verwechselt und der Weg, wie man aus Wollen zu Können 
kommt, der ist ihm zu steinig.

Kommt hier alle paar Tage vor: Da sieht jemand ein cooles Video auf 
Youtube und beschliesst "will haben". Bis dann die Bestandsaufnahme 
ergibt: Ich hab keine Ahnung wie das geht und lernen will ichs auch 
nicht.

Das derjenige, der das Video gemacht hat, das auch nicht an einem Tag 
sich aus den Rippen geschnitten hat, sondern er im Video den momentanen 
Stand einer laufenden Entwicklung zeigt, wird geflissentlich ignoriert. 
Sprich: Die in den Videos haben auch nicht mit dem coolen 
Zwischen(End)Produkt angefangen, sondern oft viel banaler.

Oft trifft das zb. auf LED-Cubes zu. Sehen cool aus, aber dann kommt der 
Katzenjammer: Keine Ahnung von Elektronik, keine Ahnung wie ein 
Multiplex funktioniert, Timer sowieso Fehlanzeige, 
Bildwiederholfrequenzen rechnen is nicht, Arrays sind in C 
Schreckgespenster, Pointer eine Ausgeburt des Bösen, mit Ach und Krach 
und viel Hilfe wird dann endlich mal ein Vorwiderstand ausgerechnet, 
.... Aber einen LED Cube bauen wollen, bei denen man mit all diesen 
Dingen besser auf Du-und-Du steht. Am besten gleich einen mit 16x16x16 
und RGB.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Am besten gleich einen mit 16x16x16 und RGB.

:-)

4 Ki LEDs, das habe ich bislang auch noch nicht geschafft. :)  Hab's
bisher "nur" auf 0,5 k LEDs gebracht (LED-Uhr mit Nachbildung einer
analogen Zeigeruhr).  Übrigens habe ich mich auch da gründlich
verhauen: von üblicher CMOS-Technik verwöhnt, hatte ich den
Eigenstrombedarf der 12 Konstantstrom-LED-Treiber-ICs völlig
unberücksichtigt gelassen.  Hatte zur Folge, dass ich einen einfach
so hingeschusterten 08/15-Linearregler durch eine Huckepack-Platine
mit einem Schaltwandler ersetzen durfte. :-/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.