Hi, ich habe eine Mathe Aufgabe vor mir, bei der ich nicht weiterkomme. Gegeben ist die Skizze im Anhang. Ich habe ein Koordinatensystem mit den Punkten P1 - P9 (schwarze Punkte). Man stelle sich eine Kiste mit Wasserflaschen vor. Nun wird die Kiste leicht gedreht und ich erkenne dies bereits mit einer Kamera anhand der ersten zwei gemessenen Punkte P1 und P2 (grün). Anhand der Kamera-Werte kenne ich auch die Abweichung (XY) zw. den Schwarzen und den grünen Punkten. Alle Punkte sind in gleichen Abständen und rechtwinklig zueinander angeordnet. Mein erster Ansatz ist, eine Gerade durch die "neuen" Punkte zu ziehen. Da ich zwei Punkte kenne, habe ich alle Informationen hierfür. Ich habe also eine Gerade und dadurch auch den Winkel, um den das neue Koordinatensystem gedreht ist. Fragestellung: Wo liegt das "neue" Koordinatensystem, sodass die Punktkoordinaten die gleichen bleiben? Die Drehung bekomme ich wie oben beschrieben raus. Aber wie bekomme ich die Verschiebung (XY), bezogen auf das Ursprungskoordinatensystem raus? Gruß Simon
:
Bearbeitet durch User
Simon K. schrieb: > Aber wie bekomme ich die Verschiebung (XY), bezogen > auf das Ursprungskoordinatensystem raus? Setze den Koordinatenursprung des 1. Koordinatensystems in P1. Den Ursprung des neuen Systems setzt du in P1' mit gleicher Winkelausrichtung wie das 1. System. Der Vektor P1 - P1' ist die Verschiebung. Der Winkel zwischen den beiden Vektoren P1-P2 und P1'-P2' ist der Drehwinkel.
Du kannst es auch in Polarkoordinaten transformieren, dort den Drehwinkel berechnen (und alle anderen Punkte) und danach zurücktransformieren. Ich hab so mal einen drehenden Pfeil in Labview programmiert... Ist aber schon Äonen her :) Bedingung: Koordinatenursprung des Polarsystems muss gleich der Drehachse sein, d.h. ggf. musst du noch eine Koordinatenverschiebung im Karthesischen vornehmen bevor du ins Polare wandelst.
Thomas F. schrieb: > Setze den Koordinatenursprung des 1. Koordinatensystems in P1. > Den Ursprung des neuen Systems setzt du in P1' mit gleicher > Winkelausrichtung wie das 1. System. > Der Vektor P1 - P1' ist die Verschiebung. > Der Winkel zwischen den beiden Vektoren P1-P2 und P1'-P2' ist der > Drehwinkel. Das wäre wohl am einfachsten. Geht aber leider nicht, da ich die Punktkoordinaten in ihren ursprünglichen Werten beibehalten muss.
Simon K. schrieb: > Das wäre wohl am einfachsten. Geht aber leider nicht, da ich die > Punktkoordinaten in ihren ursprünglichen Werten beibehalten muss. dann zieh den Offset 0-P1 von deinem neuen Koordinatensystem ab. Dann hast du den Ursprung des neuen Systems sg
Das Schwarz läßt sich in das Grün durch reine Drehung überführen, nix Verschiebung. Der Drehpunkt ist der Schnittpunkt der Mittelsenkrechten der Strecken P1schwarz/P1grün und P2schwarz/P2grün. math rulez Cheers Detlef
Simon K. schrieb: > Man stelle sich eine Kiste mit > Wasserflaschen vor. Ja, die schwarzen Punkte bilden insgesamt ein Quadrat und sind zueinander ebenfalls regelmäßig quadratisch angeordnet. Mit einer Flasche im Mittelpunkt des großen Quadrates. > Nun wird die Kiste leicht gedreht und ich erkenne > dies bereits mit einer Kamera anhand der ersten zwei gemessenen Punkte > P1 und P2 (grün). Anhand der Kamera-Werte kenne ich auch die Abweichung > (XY) zw. den Schwarzen und den grünen Punkten. Alle Punkte sind in > gleichen Abständen und rechtwinklig zueinander angeordnet. Zunächst mal braucht man keine Kamera, um sofort erkennen zu können, daß Deine grünen Punkte total falsch eingezeicnet sind. ;) Denn weder durch Drehung des "Flaschenkastens", noch durch Verschiebung von ihm wird sich irgendetwas an der ursprünglichen Anordnung der Flaschen verändern können! > Mein erster Ansatz ist, eine Gerade durch die "neuen" Punkte zu ziehen. > Da ich zwei Punkte kenne, habe ich alle Informationen hierfür. Ich habe > also eine Gerade und dadurch auch den Winkel, um den das neue > Koordinatensystem gedreht ist. > > Fragestellung: Wo liegt das "neue" Koordinatensystem, sodass die > Punktkoordinaten die gleichen bleiben? Die Drehung bekomme ich wie oben > beschrieben raus. Aber wie bekomme ich die Verschiebung (XY), bezogen > auf das Ursprungskoordinatensystem raus? Wie kommst Du nur auf die absurde Idee, daß Du ein "neues" Koordinatensystem hättest oder bekommen würdest? Die Ausgangssituation ist die, daß sich der Kasten im dritten Quadranten des kartesischen Koordinatensystems befindet. Und das Koordinatensystem wird ganz gewiß nicht dadurch verändert, daß Du den Kasten drehst und/oder verschiebst. Robert K. schrieb: > Drehpunkt der Drehachse bestimmen und dann Koordinaten neu berechnen. Ja, genau so läuft das. Kommt auch noch eine Verschiebung dazu, muß man die, bezogen auf den Drehpunkt und das Koordinatensystem kennen. Selbst wenn der Drehpunkt zwischen den Flaschen liegen sollte, bleiben die Flaschenanordnung und das Bezugs-Koordinatensystem unverändert bestehen.
Simon K. schrieb: > Fragestellung: Wo liegt das "neue" Koordinatensystem, sodass die > Punktkoordinaten die gleichen bleiben? Die Drehung bekomme ich wie oben > beschrieben raus. Aber wie bekomme ich die Verschiebung (XY), bezogen > auf das Ursprungskoordinatensystem raus? Gestern früh blieb ich Dir noch eine Antwort auf Deine Fragestellung schuldig. Erlaub mir bitte zum Zitierten erst mal eine Klarstellung der Begriffe, weil ich den Eindruck habe, daß Du hier etwas durcheinander bringst: Grundsätzlich ist eine Verschiebung (einer gewissen Anordnung von Punkten) etwas ganz anderes als eine Verdrehung von ihnen. Was Du auch ganz leicht nachvollziehen kannst, wenn Du Dir die schwarzen Punkte als separat in ihrem Begrenzungsquadrat auf einem Zettel aufgezeichnet vorstellst: Den Zettel kannst Du im Koordinatensystem verschieben und/oder verdrehen wie immer Du das willst. Absolut nichts wird sich dabei am Koordinatensystem oder der Anordnung der Punkte in ihrem Begrenzungsquadrat verändern. Wenn Du Dir bzgl. des richtigen Einstiegs bzgl. der mathematischen Erfassung von derlei unsicher bist, kann ich Dir nur empfehlen, Dir den ganzen Sums zunächst mal rein graphisch vorzustellen. Dann wird Dir nämlich auch z.B. sehr schnell klar, daß Deine grünen Punkte gar nicht stimmen/richtig sein können. Denn so falsch kannst Du die Anordnung der schwarzen Punkte (auf dem Zettel) weder verdrehen noch verschieben, daß Du dadurch jemals zu den eingezeichneten grünen Punkten kommen könntest. :) Nebenbei: Rein graphische Lösungen werden meistens unterschätzt bzw. gar nicht in Erwägung gezogen. Obwohl sie meistens viel älter und mindestens dazu geeignet sind, etwas hinreichend genau genug oder zu Kontrollzwecken erfassen zu können. Ratzfatz kann man z.B. in der Baustatik einen Cremonaplan https://de.wikipedia.org/wiki/Cremonaplan hinfetzen oder wie in Deinem Fall sowas auf Millimeter-Papier aufzeichnen, um zu angenähert guten Ergebnissen (wenn auch nur zu Kontrollzwecken) kommen zu können. Für den mathematischen und genaueren Einstieg hast Du bereits alle Infos, die Du brauchst! Wobei ich mich hier nur auf die schwarzen Punkte beziehe, weil nur die (ungefähr) richtig sind. Der mathematische Einstieg läuft an sich routinemäßig streng nach Schema f. Maßgeblich ist dabei der tan_alpha aus Bequemlichkeitsgründen. Und der ist bei Deinen schwarzen Punkten in der Horizontalen = 0, und in der Vertikalen = unendlich. Daraus ergibt sich, daß Du in der Horizontalen drei parallele Geraden in der Punkteanordnung zur x-Achse und in der Vertikalen ebenso drei parallele Geraden zur y-Achse hast. Wo genau die Schnittpunkte jeweils mit den Koordinatenachsen liegen, kannst Du aus den Geradengleichungen berechnen. Drehst Du nun das ganze System, verändert sich dadurch natürlich auch der tan_alpha, der normalerweise die Steigung von Geraden kennzeichnet. Eine Kamera hilft Dir dabei rein gar nichts: Wenn Du das exakt berechnen willst, brauchst Du den genauen Verdrehungs-Winkel. Aus dem könntest Du dann die veränderten Geradengleichungen berechnen, die unverändert parallel zueinander sind. Das brauchst Du aber gar nicht zu tun, weil Du ohnehin weißt, daß dies gar nicht anders sein kann. Es reicht deshalb auch völlig aus, wenn Du nur eine einzige Gerade berechnest und wo auf ihr dann ein willkürlich herausgegriffener von den drei Punkten liegt, die auf ihr liegen MÜSSEN. Um auf den frei verschiebbaren Zettel mit den schwarzen Punkten zurück zu kommen, die deckungsgleich mit den ursprünglichen Punkten sind: Da drückst Du irgendwo eine Nadel in den Zettel, welche der Drehpunkt sein soll, dessen Koordinaten Du natürlich auch kennen mußt. Und dann nimmst Du den Punkt mit dem größten Abstand zum Drehpunkt her. Merkst Dir, auf welcher Geraden der Punkt liegt, und Du kannst anschließend die Distanz zwischen dem Drehpunkt und diesem Punkt entweder messen oder berechen. Diese Distanz ist dann der r des Kreises, welcher die Gerade, auf dem der ausgewählte Punkt liegen MUSS, schneidet. Wenn Du dessen Koordinaten kennst, kannst Du daraus alle anderen Punktkoordinaten berechnen. Wenn Du das gesamte Punkt-System nur (ohne Drehung) verschiebst, mußt Du auch dort dann die Koordinaten des Drehpunktes kennen, um daraus die veränderten Punktkoordinaten berechnen zu können, wenn Du anschließend das System auch noch verdrehst. Du kannst das aber auch so tun als ob Du das ursprüngliche System erst mal drehst und danach verschiebst, was ja nur bedeutet, daß Du "Verschiebungs-Veränderungen" an den Punktkoordinaten vornehmen mußt. Genauer gesagt nur an dem einen ausgewählten Punkt aus dem Du alle anderen berechnen kannst. Im Endeffekt ist es völlig egal, wie Du das machst. Denn das Ergebnis kann nicht unterschiedlich sein. Auf Richtigkeit kontrollieren kannst Du es allemal mit einer ganz simplen Graphik. :D
Simon K. schrieb: > Nun wird die Kiste leicht gedreht So so. Und geschrumpft ist sie auch noch? Oder wieso liegen nun 8 der grünen Punkte innerhalb des durch die schwarzen Punkte definierten Areals? Franziska
Franziska N. schrieb: > So so. Und geschrumpft ist sie auch noch? > Oder wieso liegen nun 8 der grünen Punkte innerhalb des durch die > schwarzen Punkte definierten Areals? Wenn sie nicht nur entlang der orthogonal durch die Zeichnungsebene gehenden Achse gedreht wird, sondern "im Raum" auch um die beiden anderen Achsen, dann entsteht diese Projektion.
Das sind ja teils abenteuerliche Ideen hier... :-) Ich kann Dir folgende Lösung vorschlagen. Die Kamera liefert Dir 9 Punkte (x[i], y[i]) in kartesischen Koordinaten. Der Algorithmus, mit dem Du diese Rohdaten verarbeitest, besteht aus vier Schritten: (1) Summiere in einer Schleife 1...9 die x-Koordinaten aller 9 Punkte in einer Variablen "sum" auf. Bilde am Schluss mx = sum/9 (2) Verfahre analog mit den y-Koordinaten der 9 Punkte. Bilde am Schluss my = sum/9 Der Punkt (mx, my) ist der Mittelpunkt M der Kiste. (3) Berechne in einer weiteren Schleife zu allen 9 Punkten via Pythagoras ihren Abstand zu M und summiere diese Abstände in einer Variablen "sum" auf. Bilde am Schluss f = sum/(4*(1 + sqrt(2))) f ist der Streckfaktor. (3) Berechne in einer dritten und letzten Schleife zu allen 9 Punkten ihre Distanz zu M und prüfe jeweils, ob diese größer als 1.2·f ist. Dies trifft für genau 4 Punkte zu, nämlich die Quadrateckpunkte. Berechne dann jeweils den Verdrehwinkel des betreffenden Differenzvektors mit der Funktion "atan2" (Näheres zu dieser Funktion siehe Wikipedia). Summiere die vier Winkel in der Variablen "sum" auf. Bilde am Schluss phi = sum/4 phi ist der Verdrehwinkel der Kiste. Damit kennst Du alle Parameter der Transformation (mx, my, f, phi). Interessant ist, dass man jeden durch eine Mittelwertbildung berechnen kann. In dem unverschobenen, unverdrehten und ungestreckten Koordinatensystem haben die Punkte die Koordinaten (c·(x[i] - mx)/f - s·(y[i] - my)/f, s·(x[i] - mx)/f + c·(y[i] - my)/f) wobei c = cos(-phi) und s = sin(-phi) abkürzen. Die 9 Punkte liegen bzgl. dieses Koordinatensystems in einem Quadrat der Seitenlänge 2, das im Ursprung zentriert ist. Im Idealfall (exakte Ausrichtung der Flaschen in der Kiste und perfekte Kamera) haben die Punktekoordinaten in diesem System alle die Werte -1/0/+1; im realen Fall werden sie entsprechend etwas davon abweichen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.