Kollision von Pixel abfragen (Pixel innerhalb Kreis)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Tennisball

Betreff: Kollision von Pixel abfragen (Pixel innerhalb Kreis)

BeitragSa, Aug 29, 2009 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Ich habe folgendes Problem:
Ein Punkt (Pixel) befindet sich innerhalb eines Kreises.
Ich will überprüfen, wann dieser Punkt mit dem Rand des Kreises kollidiert.

Mein Lösungsansatz war:
BlitzBasic: [AUSKLAPPEN]
Function PixelCollide(x,y,c2$)
Local coll = 0
Local x2, y2
For x2 = -1 To 1
For y2 = -1 To 1
If ReadPixel(x+x2,y+y2,BackBuffer()) = c2 Then coll = 1
Next
Next
Return coll
End Function


Funktioniert leider nicht.
Ja, ich überprüfe das, nachdem es gezeichnet wurde.
Der Kreis kann sich innerhalb eines Schleifendurchlaufs 2 Pixel bewegen, der Punkt einen halben.
Der Punkt wird zuerst gezeichnet, also untendrunter.

Mache ich was falsch? Habt ihr andere Lösungen?
Danke im Voraus.

mfg,
Tennisball

Xeres

Moderator

BeitragSa, Aug 29, 2009 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
...und der Kreis hat einen Radius von?
Da würde doch eine Entfernungsmessung Kreismittelpunkt - Punkt auch funktionieren?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Chester

BeitragSa, Aug 29, 2009 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Mache es doch mit den mathematischen Zusammenhängen:

BlitzBasic: [AUSKLAPPEN]
abstand= Sqr((PunktX-KreisMittelpunktX)^2 + (PunktY-KreisMittelpunktY)^2)	
If abstand = radius Then Punkt_auf_Rand = 1

Tennisball

BeitragSa, Aug 29, 2009 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke sehr! Smile
Funktioniert bestens.

mfg,
Tennisball

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group