Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 29.07.2003, 12:22 Titel: Geschwindigkeit mit einem Vektor kombinieren? |
|
|
Hallo,
kann mir mal jemand helfen, wie man einen Vektor mit einer Geschwindigkeit kombiniert?
Ich hab jetzt alles ausprobiert, aber ich schaffe es nicht, einen Verschiebungsvektor zu generieren. Ich habe den Zielvektor ZV und die Geschwindigkeit 2. Eigentlich sollte es doch so gehen:
Endvektor = 2 * ZV;
Oder nicht?
Vielen Dank... |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 29.07.2003, 12:35 Titel: |
|
|
Ja wenn du den Richtungsvektor hast, musst du ihn um die Geschwindigkeit verlängern.. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 29.07.2003, 12:42 Titel: Hmmm |
|
|
Hallo,
danke dir Hazel. Aber warum zum Geier macht er dann so einen Mist? Er geht dann nicht auf das Ziel, sondern nur um den jeweiligen Schritt (in dem Fall 2) weiter. Er soll ja aber mit der Geschwindigkeit 2 auf das Ziel gehen?! |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 29.07.2003, 12:56 Titel: |
|
|
Sieht so als als ob du den Vektor jedes Frame löscht. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 29.07.2003, 13:01 Titel: Hmm |
|
|
Hallo,
hatte ich in der Tat . Als ich es geschrieben habe, ist es mir aufgefallen. Allerdings ist es andersrum auch nicht besser. Ich mache also jeden Frame die "Endvektor = 2 * Zielvektor;" - Sache. Aber er springt trotzdem noch ohne Geschwindigkeit zum ZV, resp bewegt er sich keine 2 Einheiten pro Frame.
Wo ist da mein Denkfehler??
Danke... |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 29.07.2003, 13:06 Titel: |
|
|
Hmm komisch
Entweder:
a.) Du löscht ihn an irgendeiner Stelle nochmal
b.) Der Zielvektor ist nicht korrekt oder wird verändert
oder
c.) 2 ist zu langsam(weiß ja nicht ob es 2D oder 3D ist. Bei 3D kann es zu langsam aussehen wenn das Objekt weit weg ist) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
nEp Junior JLI'ler
Anmeldedatum: 03.06.2003 Beiträge: 75
Medaillen: Keine
|
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 29.07.2003, 16:16 Titel: Hmmm |
|
|
Hallo,
danke erstmal fuer den Link. Der ist echt gut. Hat mir aber bei dem Problem nur teilweise geholfen....
EDIT: So jetzt hab ich alles durch. Ich hab auch eine Haelft geschafft, aber eben nur eine.
Code: |
if(x < HitVec.x)
{
sphere->SetMeshPosition(D3DXVECTOR3(x += moveSpeed, HitVec.y - 15.0f, HitVec.z));
}
if(x > HitVec.x)
{
sphere->SetMeshPosition(D3DXVECTOR3(x -= moveSpeed, HitVec.y -15.0f, HitVec.z));
}
|
Das geht ja aber nur wie gesehen in x-Richtungen. Kann mir jemand gedanklich Helfen, wie ich das jetzt kombiniert mit z hinkriege? Also ne kombinierte if-Abfrage hatte ich schon, das ging aber eher schlecht. Ich waere echt dankbar...
Bis denn...
Btw: x wird mit 0 initialisiert |
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 29.07.2003, 20:59 Titel: |
|
|
Wenn ich dein Problem richtig verstanden habe, würde ich das so machen:
Code: |
//globale bzw. membervariblen:
D3DXVECTOR3 vFinalPosition=D3DXVECTOR3(100.0f, 100.0f, 100.0f);
D3DXVECTOR3 vCurrentPosition=D3DXVECTOR3(-100.0f, 200.0f, -300.0f);
float fSpeed=2.0f;
//hier wird die position neu berechnet
D3DXVECTOR3 vDirection=vFinalPosition - vCurrentPosition;
D3DXVec3Normalize(&vDirection, &vDirection);
vCurrentPosition += vDirection * fSpeed;
sphere->SetMeshPosition(vCurrentPosition);
|
(Ein Code sagt mehr als tausend Worte.) _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 29.07.2003, 21:42 Titel: Hmm |
|
|
Guten Abend joerg,
du hast es in der Tat richtig verstanden. Solch eine Loesung hatte ich nur mit den x-Achsen probiert. Das Problem an der Problemloesung war, dass das Objekt am Schluß entsetzlich nervoes rumzittert. Es springt immer in etwa 0.2f nach links und rechts (und bei deiner kompletten Loesung ) nach hinten und vorne. Das verstehe ich damit nicht. Von daher hatte ich die if Loesung genommen, wobei deine natuerlich besser waere (um einige 1000 male ). Aber dann muss ich das gezittere loswerden...
Bis dann...
EDIT: Hab das Problem. Es lag am Vec3Normalize. Kann mir jemand erklaeren, warum beim normalisieren der Vektoren so ein Fehler auftritt? Das laesst mich staunen... |
|
Nach oben |
|
|
|