Vektoren nach Winkeln berechnen?
Übersicht

![]() |
M0rgensternBetreff: Vektoren nach Winkeln berechnen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Ich hab ein Problem, das eigentlich rein mathematischer Natur ist. Ich hab zur Aunschauung mal folgende Grafik hochgeladen: Das braune Dreieck richtet sich immer nach dem blauen Viereck aus. Das blaue Viereck ist immer in einer geraden Linie zum Dreieck und immer genau in der Mitte der beiden Kreise (Jedenfalls von der x- Koordinate, y kann variieren, tut aber nichts zur Sache). Die beiden Kreise sind durch Vektoren abhängig von dem Dreieck verschoben. Gibt es eine Möglichkeit, die Kreise mitzudrehen, abhängig von der Drehung des Dreiecks, aber mit gleicher Verschiebung, also mit gleichem Abstand zwischen den Kreisen und dem Dreieck. Ich hoffe, dass es verständlich ist, was ich meine. Gibt es eine Lösung dafür, jedesmal die Verschiebungsvektoren zu berechnen? Lg, M0rgenstern |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
sollte mit rotationsmatrizen gehn:
![]() http://de.wikipedia.org/wiki/Drehmatrix Code: [AUSKLAPPEN] 'beispiel
rotierteverschiebungx=cos(45)*verschiebungx-sin(45)*verschiebungy rotierteverschiebungy=sin(45)*verschiebungx+cos(45)*verschiebungy |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Vektoren, aber vielleicht ist es doch Hilfreich:
BlitzMax: [AUSKLAPPEN] SuperStrict |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Goodjee, vielen Dank.
Das ist genau das, was ich gesucht habe. Danke. @ Xeres: Vielen Dank, ist lieb gemeint, aber ich brauche Vektoren unbedingt. Ich geh die Verschiebungsvektoren (Schenkel des Dreiecks) einzeln durch um jede Koordinate auf den einzelnen Schenkeln zu erhalten. Es geht darum, einen "Lichtkegel" zu werfen, also eigentlich einen Sichtbereich. Das ganze hab ich mir schon komplett ausgerechnet etc, nur an diesem Punkt bin ich dann doch gescheitert. Lg, M0rgenstern EDIT: Also, ich muss zugeben, dass das ganze jetzt ein informatisches Problem wird^^. Hab das ganze jetzt mal in Code umgesetzt, aber das will einfach nicht funktionieren. Ab und zu, jenachdem wie ich das Dreieck drehe, sieht man einige hellere Stellen aber nicht so wie es sein sollte und auch nicht da wo es sein sollte. Ich hab hier mal den Code: BlitzMax: [AUSKLAPPEN] fAngle = ATan2(fPlayerx - MouseX() , MouseY() - fPLayery) Was ich im Prinzip mache, ist die ganze Länge des Vektors abzuklappern und zu überprüfen ob das Tile innerhalb des Dreiecks liegt. Jedenfalls sollte es das tun. Tuts leider nicht. Vielleicht sieht ja jemand von euch meinen Fehler. Lg, M0rgenstern |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry für den Doppelpost, aber:
Ich glaube, den Fehler gefunden zu haben. Ich muss diese Überprüfung: BlitzMax: [AUSKLAPPEN] If (fTilex <= fRVPartx) And (fTilex >= fLVPartx) And (fTiley <= fNy) And(fTiley >= fPLayery) Then Wahrscheinlich so umschreiben: BlitzMax: [AUSKLAPPEN] If (fTilex <= fRVPartx) And (fTilex >= fLVPartx) And (fTilex <= fnx) And (ftilex >= fqx) Then Aber ich bin mir nicht ganz sicher. Weiß jemand von euch vielleicht die Lösung? EDIT: Okay, ich mach das ganze jetzt anders, aber das funktioniert nicht so recht. Also, ich hab jetzt ein Dreieck, das sich auch mit dem Spieler dreht. Jetzt will ich jede Koordinate in diesem Dreieck ansprechen. Das mach ich mit zwei For Schleifen, aber irgendwas stimmt bei meiner Berechnung nicht. Kann mir vielleicht jemand helfen? Ist echt dringend. Hier der Code: BlitzMax: [AUSKLAPPEN] While Not KeyHit(KEY_ESCAPE) Or AppTerminate() Lg, M0rgenstern |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group