Grafik relativ zu Winkel/Position positionieren

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Grafik relativ zu Winkel/Position positionieren

BeitragSo, März 27, 2011 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute.
Ich habe gerade ein (wahrscheinlich ziemlich dämliches) Problem. Wahrscheinlich seh ich mal wieder das Programm vor lauter Code nicht, aber gut.
Also, Problem ist folgendes: Ich habe ein Bild, das an einer bestimmten Position mit einem bestimmten Winkel gezeichnet wird. Sowohl Position als auch Winkel können sich ändern.
Jetzt ist es aber so, dass ein anderen Bild relativ zu diesem ersten gezeichnet werden soll.
Also, wenn sich das erste Bild dreht, so soll das andere Bild relativ dazu die gleiche Position wie davor haben.
Leider habe ich keine Ahnung, wie ich das bewerkstelligen könnte.

Zum Verständnis:

Zitat:

()
____
|------|
|------|
|------|
--------


Zitat:

_______
|-----------|
|-----------| ()
|_______|


Also, das große Rechteck ist das erste Bild und der kleine Kreis ist das zweite Bild. Und das zweite soll halt immer die Position die es am Anfang hat beibehalten, halt relativ zu dem ersten.

Ich hoffe ihr versteht mich und ich hoffe, dass ihr mir weiterhelfen könnt.

Lg, M0rgenstern

skey-z

BeitragSo, März 27, 2011 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
kleiner Tipp
Sin
Cos

den Winkel vom ersten Bild hast du ja
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

mpmxyz

BeitragSo, März 27, 2011 20:05
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
xAbs=xOrg+Cos(winkel)*xRel-Sin(winkel)*yRel
yAbs=yOrg+Cos(winkel)*yRel+Sin(winkel)*xRel

"winkel" ist hierbei der Drehwinkel des großen Bildes im Uhrzeigersinn.
xRel/yRel gibt die relative Position des kleinen Bildes an.
xOrg/yOrg ist die Position des großen Bildes.
xAbs/yAbs ist die globale Position des kleinen Bildes.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

M0rgenstern

BeitragSo, März 27, 2011 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey mpmxyz.
Genau das wars.
Vielen Dank.

Aus interesse: Wie kommt man denn rechnerisch darauf?

Lg, M0rgenstern

mpmxyz

BeitragSo, März 27, 2011 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Man teilt den Vektor der relativen Position in zwei Vektoren auf:
xRel*(1,0) und
yRel*(0,1)
2. Man dreht beide jeweils mit Hilfe von Sinus und Kosinus:
xRel*(Cos(w),Sin(w)) und
yRel*(-Sin(w),Cos(w))
3. Nun addiert man beide Vektoren auf den Ortsvektor des Ausgangspunktes:
(xAbs,yAbs) = (xOrg,yOrg) + xRel*(Cos(w),Sin(w)) + yRel*(-Sin(w),Cos(w))
->Mit etwas Umformen bekommt man den BlitzMax-Code heraus.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group