Seite 2 von 2
Verfasst: 09.03.2006 22:34
von estate
Ich habe mir einmal die Zähne an einem Raycaster ausgebissen.
Ich empfehle dir die beiden Vektoren auf dem Papier allgemein zu schneiden, und dann diese Rechnung in Quellcode zu konvertieren.
Das funktioniert dann garantiert.
Verfasst: 09.03.2006 23:17
von NicTheQuick
Meine Funktionen sind allgemein. Die benutze ich ja auch für meinen
RayTracer.
Verfasst: 10.03.2006 08:01
von DarkDragon
estate hat geschrieben:Ich habe mir einmal die Zähne an einem Raycaster ausgebissen.
Ich empfehle dir die beiden Vektoren auf dem Papier allgemein zu schneiden, und dann diese Rechnung in Quellcode zu konvertieren.
Das funktioniert dann garantiert.

Bei Raycasting benötigt man sowas ja nicht:
http://www.student.kuleuven.ac.be/~m021 ... sting.html
Man kann also bei einem Raycaster jegliche Punkte auf dem Strahl einfach prüfen.
Verfasst: 10.03.2006 19:13
von Zaphod
Das kommt drauf an. Für Wolfenstein artige raycaster braucht man das nicht, aber doom 1+2 war auch eine raycasting engine.
Verfasst: 14.03.2006 22:15
von Kekskiller
Ganz genau, "Blockcasting" ist ja in dem Fall einfacher zu lösen.
@Nick: Ich musste mit Erschrecken feststellen, dass deine Funktion bei mir irgendwie nur in eine richtung funktioniert. Wenn ich eine Linie von (0|100) bis (100,100) ziehe und sie dann mit einer (0|0) bis (50|50) oder ähnlich vergleiche, bekomme ich eine Kollision heraus.
Kann natürlich auch sein, dass ich was falsch gemacht hab, aber ich finde es sehr seltsam, zumal so mein Raycaster "nur in eine Richtung sichtbar ist"

.
Oder ist das bei Vektoren so oO ?
Verfasst: 15.03.2006 00:32
von NicTheQuick
@KeksKiller:
Hast du auch die richtige Funktion benutzt?
Bei mir liefert folgender Code Null:
Code: Alles auswählen
Debug LineHitsLine_2D_Koord(0, 100, 100, 100, 0, 0, 50, 50, 0)
Der folgende Code liefter eine eins zurück und die entsprechenden
Schnittkoordinaten:
Code: Alles auswählen
schnitt.Vector2D
Debug LineHitsLine_2D_Koord(19, 400, 386, 0, 10, 10, 200, 400, @schnitt)
Debug schnitt\x
Debug schnitt\y
Verfasst: 18.03.2006 20:01
von Kekskiller
Ja, die Funktion hab ich genommen. Ich werde noch ein wenig rumprogrammieren und dann nochmal probieren.
Btw: Das Programm ist jeztzt in der Grundfunktion fertig, habe deine Funktion noch einmal irgendwo in vereinfachter Form entdeckt, danke dir dennoch für deine Hilfe
