Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Mauskoordinaten am elegantesten Erfassen

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 <
000
02.01.2004, 17:32 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ich zeichne eine 8x8 Matrix, aber um 45° gedreht



Jedes Feld der Matrix ist 44x44 Px (ungedreht).

Ich möchte nun, um diverse Funktionen an einem gewählten Feld auszuführen, die Koordinaten abfragen, nur: ein einfaches "Abfragequadrat" kann ich nicht rumlegen da sich sonst die Felder schneiden.

Wie könnte man das schnellstmöglich abfragen? (die Abfrage sollte möglichst nicht zu sehr bremsen)
--
class God : public ChuckNorris { };

Dieser Post wurde am 05.08.2004 um 11:48 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.01.2004, 19:31 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hm willst du ein 3d-schach proggen?
wenn ich richtig verstanden habe was du willst sieht das nach einer koordinatentransformation aus...

ich glaub um nen 2D-Punkt zu drehen musstest du mit dieser matrix die punkte mutliplizieren...

cos(alpha) sin(alpha)
-sin(alpha) cos(alpha)


alpha ist der winkel um den du drehen willst....

[Edit].. hab gerade was bei google gefunden ....

zum drehen nach rechts nimmst du einfach 45 Grad im Bogenmass und zum zurücktransformieren -45 Grad..... Brauchst also gar nicht erst mit sinus und cosinus rechnen sondern kannst gleich den Wurzel 2 halbe spass verwenden...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 02.01.2004 um 19:35 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.01.2004, 19:36 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dieser 45° Winkel bleibt bestehen, ich möchte nur die einzelnen Felder abfragen.

Ich könnte zwar ein Quadrat mit den Ecken auf den Mitten der 4 Seiten machen, dann werden aber immer die Ecken nicht von der Maus erfasst, was dann etwas blöd wird wenn man wegzoomt.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.01.2004, 21:18 Uhr
erpelqueen
Entlein


gute Frage...
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.01.2004, 21:49 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Erfaß die Koordinaten "normal" und dreh dann den x-y-Vektor per sin/cos-Funktion um 45 Grad zurück in ein virtuelles Gitter. Darin kannst Du dann ganz normal abfragen.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.01.2004, 22:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm bin heut nicht für mathematische großta(n)ten aufgelegt, wie säh dann sowas für einen bereich aus bzw welche Koordinaten muss ich dann zum Abfragen eingeben (bzw wie mach ich das????)?

(Sorry wenn ich zurzeit so blöd durch die gegend frage )
--
class God : public ChuckNorris { };

Dieser Post wurde am 02.01.2004 um 22:52 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.01.2004, 23:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@BruderLeif
So hab ich das doch auch gemeint oder geht das etwa mit der Matrix nicht die ich da gepostet habe.. Ich meine das müsste gehen....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.01.2004, 14:40 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

So, jetzt bin ich wieder online :-) Probier mal die Koordinatentransformation:

u = x * cos(a) + y * sin(a)
v = -x * sin(a) + y * cos(a)

Mit a = Drehungswinkel (in Deinem Fall 45°) kommst Du von x/y-Koordinaten in ein u/v-System, das um eben diese a Grad gedreht ist. Damit hast Du ein "reguläres" Gitter und kannst das angeklickte Feld ermitteln...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.01.2004, 15:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ach SOOO meint ihr das...
ja mal schaun ob ich das anwenden kann
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: