JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=30d0fab5c1f6185acdd8bae69fc67e6dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Geschwindigkeit mit einem Vektor kombinieren?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 12:22    Titel: Geschwindigkeit mit einem Vektor kombinieren? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 12:35    Titel: Antworten mit Zitat

Ja wenn du den Richtungsvektor hast, musst du ihn um die Geschwindigkeit verlängern..
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 12:42    Titel: Hmmm Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 12:56    Titel: Antworten mit Zitat

Sieht so als als ob du den Vektor jedes Frame löscht.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 13:01    Titel: Hmm Antworten mit Zitat

Hallo,

hatte ich in der Tat Wink. 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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 13:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nEp
Junior JLI'ler



Anmeldedatum: 03.06.2003
Beiträge: 75

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 13:28    Titel: Antworten mit Zitat

Vielleicht hilft dir http://www.pixelate.co.za/issues/5/5/articles/circle/sincos.htm weiter.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 16:16    Titel: Hmmm Antworten mit Zitat

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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 20:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 29.07.2003, 21:42    Titel: Hmm Antworten mit Zitat

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 Wink) 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 Wink). 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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum