Überprüfen ob Punkt in Kreis

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

blitzmaster

Betreff: Überprüfen ob Punkt in Kreis

BeitragDi, Jun 14, 2005 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich brauche eine Methode mit der ich überprüfen kann, ob sich ein Punkt in einem Kreis befindet!

Danke schon jetzt,

Blitzmaster
 

f L i P

BeitragDi, Jun 14, 2005 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
imagebuffer() ?

fLiP
mir egal wer dein Vater ist- solange ich hier am angeln bin wird nicht über's wasser gelaufen!
 

Apocalyptic

BeitragDi, Jun 14, 2005 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Satz des Pythagoras
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Devils Child

BeitragDi, Jun 14, 2005 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
der pythagoras doch nicht.
wenn der abstand vom mittelpunkt kleiner als der radius ist, ist der punkt drinn.
abstand berechnet man so:
abstand = sqr((x1+x1)^2+(y1+y2)^2))
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Mo

BeitragDi, Jun 14, 2005 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mein ja immer noch, dass du ein Kreis als Bild zeichnen sollst und dann die Kollision mit dem Punkt prüfen sollst...
... ach ja für brauchst du des denn? Kann mir mehr drunter vorstellen wenn ich weis für was es denn nützen soll.... dann kann man auch weiterdenken (und helfen) Wink
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!

Eine Floßfahrt die ist lustig... *sing* Wink

Spikespine

BeitragDi, Jun 14, 2005 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
@Devils Child: Den Satz des Phytagoras hast du aber auch angewendet!?

Stimmt ja auch. Prüfe, ob der Abstand zum mittelpunkt (pythagoras) kleiner gleich dem radius des Kreises ist.

Spike
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Devils Child

BeitragDi, Jun 14, 2005 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
das war der phytagoras?
blubb, dann hab ich eben den phytagoras angewnedet
*achselzuck* Wink
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Ctuchik

BeitragMi, Jun 15, 2005 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat sich aber ein kleiner Fehler eingeschlichen, es muss minus und nicht plus sein, und das Sqr kann man sich sapren wenn man stattdessen den radius zum quadrat nimmt, is glaub schneller!

If (((x1-x2)^2 + (y1-y2)^2) <= radius^2) Then PUNKT_IM_KREIS

MfG Ctuchik
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!
 

Dreamora

BeitragMi, Jun 15, 2005 0:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute Optimierung Smile
Ist nicht nur "glaub" schneller sondern ziemlich beträchtlich viel schneller da SQR ausser LOG die langsamste Matheoperation is die man so normalerweise hat => Vermeiden durch beibehalten der Quadrate ist immer eine sehr gute Idee Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

D2006

Administrator

BeitragMi, Jun 15, 2005 0:25
Antworten mit Zitat
Benutzer-Profile anzeigen
dachte ich auch mal.

Müsste man aber mal konkret einen Zeittest machen, denn die Idee kam mir vor ein paar Monaten und seitdem habe ich nicht wirklich spürbare Zeiteinsparungen dadurch gemacht. Soll heißen: es ist wohl egal.

MfG
D2006

Alfadur

BeitragMi, Jun 15, 2005 0:34
Antworten mit Zitat
Benutzer-Profile anzeigen
egal ist es nicht, ist wirklich schneller, aber was ist wenn die werte so groß werden das sie umkippen, also über den wertebereich gehen? da könnte man mit der sqrt variante noch ne weile weiter rechnen ...
A Cray is the only computer that runs an endless loop in less than four hours.
 

Dreamora

BeitragMi, Jun 15, 2005 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du so grosse werte hast wirds eh einbrechen, da solche Distanzen für den 3D Raum nicht vorgesehen sind ...
Int und Float gehen doch "relativ weit rauf" bis sie gewrappt werden und "unten" wieder rein kommen ... wenn du etwas hast, das 2 * 10^9 überschreitet, solltest du dir andere sorgen machen Wink

Wenn du nur wenige SQR hast merkst du nicht wirklich einen unterschied. Wenn du aber pro Frame für unzählige Objekte so einen Distanztest machst zb um die Kollisionsroutinen drastisch zu beschleunigen, dann macht es einen ziemlichen Unterschied.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Devils Child

BeitragMi, Jun 15, 2005 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
darf ich raten...
...du willst am wettbewerb für "Pi-Berechnen" teilnehmen.
da braucht man nähmlich das, was du gefragt hast!
lass das, die monte-carlo methode pi zu berechnen, die ist sowas von lahm Wink
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Jack

BeitragMi, Jun 15, 2005 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Machs so:
Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer ImageBuffer(Kreis)
Color Rand(255), Rand(255), Rand(255)
Oval x,y,100,100
SetBuffer ImageBuffer(Punkt)
Color Rand(255), Rand(255), Rand(255)
Plot x2,y2
SetBuffer BackBuffer()
Repeat
 Cls
 If x = x2 And y = y2 Then
  Text 20,20,"Kollision"
 EndIf
 Delay 150
 Flip
Until KeyHit(1)

Dann musst du halt noch den Kreis zum Bewegen bringen.

Devils Child

BeitragMi, Jun 15, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
!!ICH!! hat Folgendes geschrieben:
darf ich raten...
...du willst am wettbewerb für "Pi-Berechnen" teilnehmen.
da braucht man nähmlich das, was du gefragt hast!
lass das, die monte-carlo methode pi zu berechnen, die ist sowas von lahm Wink

er will doch pi berechnen...da lohnt es sdich nicht so lahme grafikfunktionen zu machen Confused
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Jun 15, 2005 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab noch eine Speedverbesserung, denn
BlitzBasic: [AUSKLAPPEN]
If  x + y < radius Then PUNKT_IM_KREIS 
!
das grenzt schon 50% aus und sollte die Rechenzeit schon stark reduzieren

ausserhalb gehts auch.
ca 25% weniger
BlitzBasic: [AUSKLAPPEN]
Aussenlinie = Sqr(radius^2 *2)

If x + y <= Aussenlinie Then ;PUNKT_evt_im_KREIS
If x^2 +y^2 <radius^2 Then PUNKT_IM_KREIS

Damit können dann ca 75%schneller ausgewertet werden!
[BB2D | BB3D | BB+]

BladeRunner

Moderator

BeitragDo, Jun 16, 2005 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
~AUFSPALTUNG~


Gesäubert. Bleibt sachlich und beim Thema. Danke.

BladeRunner
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

blitzmaster

BeitragDo, Jun 16, 2005 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
*freu**freu* Danke für die Zahlreichen antworten!!!
[edit] ich will am PI Wettbewerb mitmachen, aber nicht mit der Monte Carlo Methode. Die ist zu langsam. Da ich sie aber für was anderes Brauche (Schule) bleibt mir nichts anderes übrig!] Wink
***************
Blitzmaster

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group