SinCos Umkehrung.

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Matthias

Betreff: SinCos Umkehrung.

BeitragMi, Jul 01, 2015 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Um Koordinaten rotieren zu lassen gibt es eine Berechnung.
Code: [AUSKLAPPEN]

NeuX=-Sin(Winkel)*Y-Cos(Winkel)*X
NeuY=-Cos(Winkel)*Y+Sin(Winkel)*X


Meine frage ist nun wie ich die Berechnung umdrehen kann.
NeuX und NeuY ist gegeben. Und X und Y wird gesucht.

Wäre über eine Lösung sehr dankbar. Smile

Holzchopf

Meisterpacker

BeitragMi, Jul 01, 2015 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht stark nach Rotationsmatrize aus. Wenn du NeuX/NeuY einfach wieder um Winkel zurückdrehst, solltest du wieder am Punkt X/Y ankommen.

Code: [AUSKLAPPEN]
X=-Sin(-Winkel)*NeuY-Cos(-Winkel)*NeuX
Y=-Cos(-Winkel)*NeuY+Sin(-Winkel)*NeuX


Oder unter anwenden der Symmetrien von Sinus um die Abszisse und Kosinus um die Ordinate:
Code: [AUSKLAPPEN]
X=Sin(Winkel)*NeuY-Cos(Winkel)*NeuX
Y=-Cos(Winkel)*NeuY-Sin(Winkel)*NeuX


mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

DAK

BeitragMi, Jul 01, 2015 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür musst du das Gleichungssystem nach X und Y lösen.

Check mal auf WolframAlpha.

Link zum Rauskopieren: (http://www.wolframalpha.com/input/?i=equation+system&a=FSelect_**SolveSystemOf2EquationsCalculator--&f2=u%3D-Sin%28w%29*Y-Cos%28w%29*X&f=SolveSystemOf4EquationsCalculator.equation1%5Cu005fu%3D-Sin%28w%29*Y-Cos%28w%29*X&f3=v%3D-Cos%28w%29*Y%2BSin%28w%29*X&f=SolveSystemOf4EquationsCalculator.equation2%5Cu005fv%3D-Cos%28w%29*Y%2BSin%28w%29*X&f4=a%2B2+y-z+%3D+1&f=SolveSystemOf4EquationsCalculator.equation3%5Cu005fa%2B2+y-z+%3D+1&f5=a%2B2+x+%3D+12&f=SolveSystemOf4EquationsCalculator.equation4%5Cu005fa%2B2+x+%3D+12)

Da Wolfram Alpha nur einbuchstabige Variablen erlaubt habe ich NeuX auf u, NeuY auf v und Winkel auf w umbenannt.
Gewinner der 6. und der 68. BlitzCodeCompo
 

Matthias

BeitragMi, Jul 01, 2015 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Viel Dank. Holzkopf deine Lösung war die die ich gesucht habe. Very Happy

Code: [AUSKLAPPEN]

X=Sin(Winkel)*NeuY-Cos(Winkel)*NeuX
Y=-Cos(Winkel)*NeuY-Sin(Winkel)*NeuX

Chester

BeitragMi, Jul 01, 2015 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wen du den Winkel nicht kennst, dann brauchst du das Rotationszentrum, um den Winkel auszurechnen.

Pseudocode (tan^-1 musst du glaub ich ATan2 nehmen in BB):

Code: [AUSKLAPPEN]
alpha = tan^-1 ( (NeuY-ZentrumX)/(NeuX-ZentrumY))
r = Sqrt((NeuX-ZentrumX)^2 + (NeuY-ZentrumY)^2)
AltX=Cos(alpha)*r
AltY=Sin(alpha)*r
  • Zuletzt bearbeitet von Chester am Mi, Jul 01, 2015 16:57, insgesamt einmal bearbeitet

SpionAtom

Betreff: Atan2

BeitragMi, Jul 01, 2015 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja um den Winkel aus einer Geraden zu bekommen verwende man: [[https://www.blitzforum.de/help/ATan2]]
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group