Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 09:28

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 2D - Punktrotation
BeitragVerfasst: Mo Jun 13, 2005 17:49 
Offline
DGL Member

Registriert: Di Apr 27, 2004 13:38
Beiträge: 13
Hallo =)
Folgendes Problem:
Ich habe ein klickbares Image, mit einer Karte darin.
solange Ich diese in normaler Form habe (Norden oben, Süden unten) ist die Positionierung durch einen klick (karte wird auf den Klickpunkt zentriert) perfekt.
Wenn die karte aber nun an das Gamefenster angepaßt ist - also um 45° gedreht ( Norden rechts-oben) klappt das ganze nicht mehr so ganz.
Nun fiel mir dabei ein das ich ja auch die Mauskoordinaten mitdrehen muß.
Die Frage ist allerdings: Wie mache ich das?

Gegeben sind Punkt p (mausX und MausY aus OnMouseUp) und punkt c als mittelpunkt des Bildes (aus image.width / 2, image.height/2).
Wie drehe ich p nun 45° um m ?

Folgender Code bringt ein nicht wirklich passendes Ergebnis (mit alpha=45)

Code:
  1. dx:= round(x+(cx-x)*sin(alpha/180*PI));        
  2. dy:= round(y+(cy-y)*cos(alpha/180*PI));


Über alle Anregungen dankbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 17:54 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Sin ist für Y Axis und Cos für X.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 18:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Dein Klick Problemm löst man normalerweise mit gluUnProjekt.

Zu diesem Thema gibt es unzählige Foren einträge einfach mal suchen. Das wurde betimmt schon 4 mal erklärt.

MfG
Flo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 20:02 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Da es sich um ein 2D Programm handelt, dürfte man aber auch so die Koordinaten recht leicht umrechnen ohne gluUnprojekt benutzen zu müssen. Aber wenn man schon OpenGL für sowas benutzt, dann gleich richtig... Mit gluUnprojekt bist du da echt bestens bedient.

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 21:01 
Offline
DGL Member

Registriert: Di Apr 27, 2004 13:38
Beiträge: 13
Frase hat geschrieben:
Da es sich um ein 2D Programm handelt, dürfte man aber auch so die Koordinaten recht leicht umrechnen ohne gluUnprojekt benutzen zu müssen. Aber wenn man schon OpenGL für sowas benutzt, dann gleich richtig... Mit gluUnprojekt bist du da echt bestens bedient.


OpenGL wäre warscheinlich von der GEschwindigkeit her ein nettes Feature, aber das komplette Projekt ist bisher ohne opengl. Das kommt erst rein wenn der Rest auf festen Füßen steht.
Ich würde ja auch die glu-Klamotten nehmen (selbst für 2d-drehungen), aber das kommt erst mit dem Rest zusammen rein.
Deswegen ist alles was ich brauche eine Formel mit x:=dies und y:=das =)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 21:16 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Gibt es dafür einen triftigen Grund, warum du OpenGL erst nachträglich einbauen willst?
Ich hab da nämlich so eine Vermutung, dass du dir dann, wenn es so weit ist, wünschst, du hättest schon viel früher alles auf OpenGL ausgelegt...

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 13, 2005 21:28 
Offline
DGL Member

Registriert: Di Apr 27, 2004 13:38
Beiträge: 13
Frase hat geschrieben:
Gibt es dafür einen triftigen Grund, warum du OpenGL erst nachträglich einbauen willst?
Ich hab da nämlich so eine Vermutung, dass du dir dann, wenn es so weit ist, wünschst, du hättest schon viel früher alles auf OpenGL ausgelegt...


Naja, der Grafik-Teil ist nur minimal bei dem Projekt, so das das Umstricken an sich nicht das Problem sein dürfte.
Er beschränkt sich viel mehr auf das einlesen eines Bitmaps und entsprechend einer ingame-position die aus dem Speicher geholt wird wird passend auf der Karte angezeigt, bzw. der User kann sich an entsprechende Stelle hinteleportieren (auf die er vorher geklickt hat).
Deswegen sollte das Umstellen an sich nicht das Problem sein wo es ja nur um die Darstellung der Map geht (und das ist auch noch ne Flache Karte ohne Z)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 14, 2005 00:19 
Offline
DGL Member

Registriert: Di Apr 27, 2004 13:38
Beiträge: 13
Geklärt.
Langer Rede kurzer Sinn ich bin nu auf diese Procedure gekommen (falls mal wer vor ähnlichem Problem steht):
Code:
  1. procedure DrehungUm(CenterX, CenterY, PointX, PointY, phi: real; var ResultX, ResultY:real);
  2. begin phi := phi/180*Pi; //Gradmass in Bogenmass
  3.       ResultX := cos(phi)*(Pointx - centerx)  + sin(phi)*(pointy - centerY) + centerX;
  4.       ResultY := -sin(phi)*(pointX - centerX) + cos(phi)*(pointy - centery) + centerY;
  5. end;
:mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 16 Queries | GZIP : On ]