Kollision zwischen Kreis und Linie

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Hubsi

Betreff: Kollision zwischen Kreis und Linie

BeitragMi, Sep 19, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte die Kollision eines Kreises mit einer Linie feststellen. Gegeben sind die Start und Endkoordinate der Linie, die Koordinten des Kreismittelpunkts und soweit benötigt den Winkel der Linie. Ich hab bislang die Beispielcodes im Forum und auf blitzbase.de studiert, aber diese konzentrieren sich auf Kollision zweier Linien. Ich hab inzwischen keine Idee mehr wie ich das errechnen sollte und bin von daher für jeden heissen Tip dankbar Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Markus2

BeitragDo, Sep 20, 2007 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Circle-Line Intersection
http://mathworld.wolfram.com/C...ction.html

mit Quelltexte in VB & C
http://local.wasp.uwa.edu.au/~...phereline/

Hubsi

BeitragDo, Sep 20, 2007 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal für die Links. Leider hab ich das nicht wirklich verstanden, zumal ich auch kein Wort C oder VB spreche Very Happy Und die Formeln aus dem ersten Link sind ab der dritten Zeile für mich nur wirres Kauderwelsch. Wenn jemand noch weitere Lektüre hat bin ich also nicht abgeneigt Very Happy

Smily

BeitragDo, Sep 20, 2007 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Formeln sehen zwar groß aus, bestehen aber - soweit ich das bis jetzt sehe - nur aus grundlegenden Mathematischen dingen... Wenn cih wieder zuhause bin, werde ich mich mal daran versuchen das in blitz umzusetzen.

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Markus2

BeitragDo, Sep 20, 2007 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese ist eigentlich für eine Kugel aber wenn man die höhe weg läßt
kommt das gleiche heraus .

s ist Start
d ist Differenz zwichen Start und Ziel bzw. Richtung
k ist die Mitte der Kugel
Radius halt der Radius der Kugel

Code: [AUSKLAPPEN]

Function SphereIntersect(sx#,sy#,sz#,dx#,dy#,dz#,kx#,ky#,kz#,Radius#)

 ;MR 03.04.2004

 Local a#
 Local b#
 Local c#
 Local t1#
 Local t2#

 Local Radius2#

 Radius2 = Radius * Radius

 a = dx * dx + dy * dy + dz * dz
 b = 2.0 * dx * (sx - kx) + 2.0 * dy * (sy - ky) + 2.0 * dz * (sz - kz)
 c = kx * kx + ky * ky + kz * kz + sx * sx + sy * sy + sz * sz - 2.0 * (kx * sx + ky * sy + kz * sz) - Radius2

 Local discriminant#
 discriminant = b * b - 4.0 * a * c

 If discriminant > 0.0
  Return 1 ;Intersection
 EndIf

 Return 0

End Function

Hubsi

BeitragDo, Sep 20, 2007 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Tausend Dank Very Happy So funktionierts, jetzt kanns weitergehen Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group