Linienschnitt - Findet meinen Fehler [gelöst]
Übersicht BlitzMax, BlitzMax NG Allgemein
n-HalbleiterBetreff: Linienschnitt - Findet meinen Fehler [gelöst] |
So, Okt 16, 2011 0:26 Antworten mit Zitat |
|
---|---|---|
Guten Morgen BBP!
Aktuell benötige ich eine Funktion, die Linienschnittpunkte erkennt (erkennt, sie muss nicht die Koordinaten ausrechnen), allerdings finde ich den Fehler in meinem Ansatz nicht. Ich möchte die Erkennung gerne über die Cramersche Regel ablaufen lassen. Das LGS, das den Linienschnitt beschreibt, ist folgendes (DXn ist die Differenz der X-Koordinaten der nten Linie): X1-X3 = -s * DX1 + t * DX2 Y1-Y3 = -s * DY1 + t * DY2 Mein Vorgehen ist: Die Lösungskoeffizienten s und t über die Cramersche Regel bestimmen; liegen die beiden Werte jeweils zwischen 0 und 1, schneiden sich die Linien und meine Funktion gibt True zurück. Nur versage ich schon seit längerem an der korrekten Bestimmung von s und t. An sich dürfte das kein Problem sein, wie im Wiki-Artikel ja auch beschrieben wird. Nur der Code haut nicht hin: BlitzMax: [AUSKLAPPEN] SuperStrict (Code der Linienschnittfunktion (im Code unten) mit Testprogramm.) Es wäre lieb, wenn ihr mir helfen könntet, ich finde einfach meinen Fehler nicht. EDIT: Code korrigiert, damit das Beispiel auch funktioniert. |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
- Zuletzt bearbeitet von n-Halbleiter am So, Okt 16, 2011 0:52, insgesamt einmal bearbeitet
mpmxyz |
So, Okt 16, 2011 0:47 Antworten mit Zitat |
|
---|---|---|
Zitat: DrawText(LinesIntersect(X1,Y1,X2,Y2,X3,Y3,X4,Y4),10,580)
Debugregel #1: Der Test ist Schuld! mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
n-Halbleiter |
So, Okt 16, 2011 0:51 Antworten mit Zitat |
|
---|---|---|
Wow.. Ich bin platt, wie konnte ich das nur übersehen? ^^'
Vielen Dank! Ich werde das jetzt noch korrigieren, ist immerhin noch eine ganz nette Funktion, die man mal gebrauchen kann. |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
Übersicht BlitzMax, BlitzMax NG Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group