Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Einen Punkt um einen anderen rotieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
26.08.2004, 13:25 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


genaugenommen nimmt man eigentlich eine matrix zum rotieren

ausmultipliziert für ne zweidimensionale drehung wäre das dann so...

x = x_alt*cos(winkel) + y_alt*sin(winkel)
y = -x_alt*sin(winkel) + y_alt*cos(winkel)

das müsstest du mit jedem deiner punkte machen und dann sollte die um den gewünschten winkel gedreht sein.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
26.08.2004, 16:49 Uhr
Hans
Library Walker
(Operator)


Hi Windalf,

was die Matrix angeht, so weis ich das auch, aber ich hab mir den Hinweis erst mal verkniffen, weil ich das Gefühl hab, das er dann erst recht verwirrt ist. Und da er bis jetzt nur Punkte rotieren will, genügt es meiner Meinung nach erst mal, wenn er das grundsätzliche Verfahren kennen lernt. Die Matrizengeschichten sind ja schon wieder eine Erweiterung, bzw. Verallgemeinerung der Sache. Die sind im fortgeschrittenen Stadium zwar besser (bzw. notwendig), aber ich fürchte, dass er davon keine Ahnung hat. (Nehme ich zumindest an; deswegen hab ich auch nichts davon geschrieben.)
Abgesehen davon sollte man auch mit karteschen- und polaren Koordinaten nach belieben herum springen können, wenn man anfängt, mit Matrizen zu hantieren.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
26.08.2004, 17:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

weil ich das Gefühl hab, das er dann erst recht verwirrt ist



naja vielleicht versteht ers so nicht aber so sollte es auf jeden fall dann funzen wenn ers einfach stupide abtippt, unsere beiden erklärungsversuche vorher sind ja anscheinend erbärmlich gescheitert...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
26.08.2004, 17:41 Uhr
Hans
Library Walker
(Operator)


@ Lensflare:

also schön, hier mal zum nachrechnen:

Nehmen wir an, wir haben den Punkt P mit den Koordinaten x1=6,5 und y1=2,5. Dessen Position wollen wir jetzt um 39 Grad drehen, und zwar im mathematisch positiven Sinn, also gegen den Uhrzeiger. Um das einfach machen zu können, brauchen wir als erstes seine polaren Koordinaten. Die berechnen sich wie schon mal angegeben so:
r = sqrt(x²+y²) = sqrt(6,5*6,5 + 2,5*2,5) = 6,964
phi = atan(y/x) = atan(2,5/6,5) = 21,04°

zu diesem Winkel von 21,04° zählen wir jetzt unseren Drehwinkel dazu, also die 39°:
21,04° + 39° = 60,04°

jetzt müssen wir wieder in kartesische Koordinaten zurück rechnen, um die neuen Werte für x und y zu erhalten:
x2 = r * cos(60,04°) = 6,964 * cos(60,04°) = 6,964 * 0,499 = 3,48
y2 = r * sin(60,04°) = 6,964 * sin(60,04°) = 6,964 * 0,866 = 6,03

Damit haben wir die gesuchten Werte, nämlich die Koordinaten, an denen der Punkt P nach der Drehung zu liegen kommt. Wenn Du es Dir auf Kästchenpapier aufzeichnest, kommt da x=3,5 und y=6 heraus, zwar auch nicht 100%ig, aber Du kannst auf dem Monitor ja auch keine halben Pixel anzeigen. -> Du wirst zur Anzeige immer irgendwo runden müssen. - (Aber bitte mit gerundeten Werten nur so wenig wir möglich rechnen! Wenn Du es doch tust, werden die Fehler, die sich durch das Runden ergeben immer grösser, so das Du Ergebnisse am Ende alle vergessen kannst, weil sie einfach nicht mehr stimmen.)

Ich hoffe, damit ist Deine Verwirrung entwirrt.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
26.08.2004, 17:49 Uhr
Hans
Library Walker
(Operator)



Zitat von Windalf:

unsere beiden erklärungsversuche vorher sind ja anscheinend erbärmlich gescheitert...

Hi Windalf,

kann sein dass Du da recht hast... - Deshalb hab ich mir auch mal dieses Beispiel ausgedacht und durchgerechnet.
Vorher hab ich's mir selber aufgezeichnet, damit ich einigermassen glatte Ergebnisse bekomme. Nachdem ich die Punkte hatte, hab ich den Drehwinkel erst mal mit dem Geodreieck ausgemessen und anschliessend die Rechnung gemacht. Deshalb hab ich auch ein paar Rundungsfehler. Aber das Thema Rundungsfehler sollten wir hier nicht weiter vertiefen.

Hans


P.S. @Windalf: hab mein Beispiel gerade mal mit Deinen Formeln nachgerechnet. Da kommen nämlich andere Zahlen bei raus. Erst dachte ich, das da was falsch ist. Hab's dann mal aufgezeichnet, und festgestellt, das die Drehung dabei im Uhrzeigersinn verläuft. Also der üblichen Denkweise entsprechend. Das könnte natürlich ein Fallstrick werden, wenn man es nicht weis.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 26.08.2004 um 18:08 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
26.08.2004, 18:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Hans
ka ich hab immer die rotationsmatrix verwendet wenn ich mal irgendwas drehen wollte... mit dem anderen spass hab ich nicht rumgespielt...
hast du dir das wirklich von hand aufgemalt

ich hätte es höchsten schnell in excel gehackt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
26.08.2004, 19:32 Uhr
Hans
Library Walker
(Operator)


Hi Windalf,

yep, hab ich alles von Hand aufgemalt, d.h. mit 'nem Geodreieck und 'nem Zirkel.
Koordinatenkreuz auf ein Blatt Karopapier aufgezeichnet, dann einen Zirkel in den Nullpunkt eingestochen und an den Kreuzungspunkten (der vorgedruckten Kästchen) ein paar Kreise gezogen. Den Rest der Vorgehensweise wird sich wohl jeder selbst zusammen reimen können...

Und was die Rotationsmatrix angeht: Du hast ja auch den nötigen Background in Mathe, so das Du Dir die benötigten Formeln mal eben aus der Matrix herleiten kannst. Das Gefühl hab ich bei Freund Lensflare aber nicht; - soll heissen ihm fehlen da sehr wahrscheinlich noch einige Mathekenntnisse.

Und about Excel: so kann man das auch machen. Ich hab aber mit Tabellenkalkulationen noch nicht so viel gemacht, als das ich in der Lage wäre, da mal eben was zu hacken...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 26.08.2004 um 19:44 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
30.08.2004, 22:29 Uhr
Lensflare



da ich anscheinend doch alles richtig gemacht habe (die formel von Hans beweist es) und aus irgend einem unerklärlichen grund sich meine punkte einfach nicht richtig drehen wollen, habe ich die formel von windalf genommen.

Ihr habt recht, meine mathekenntnisse sind zu gering um die formel zu verstehen, aber sie geht.

also vielen dank für eure bemühungen, ich kann jetzt endlich punkte um punkte drehen
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 30.08.2004 um 22:30 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
30.08.2004, 23:30 Uhr
Hans
Library Walker
(Operator)


@Lensflare,

Wenn Du die Mathematik verstehen willst, dann sieh Dir mal auf dieser Seite das Java-Applet Ebene Polarkoordinaten an. Dazu lies Dir meine Erklärungen noch mal durch, und spiel ein bischen mit dem Applet herum. Dann sollte Dir zumindest der Zusammenhang zwischen den verschiedenen Koordinatensystemen klar werden. Wenn nicht, dann lies mal das hier; das gehört zur selben Seite, ist aber etwas umständlich zu finden. (Oder war es zumindest für mich )
Damit sollte Dir dann ein Teil der Theorie von dem klar werden, was Du da treibst...

Hans

P.S.: Die Seite und die dort gebotenen Applets sind auch für alle anderen Interessant, die irgendwie dauernd mit Mathe zu tun haben....
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: