X1 = X Des Der Maus am nächsten liegenden Objekts? *gelößt*
Übersicht BlitzBasic Beginners-Corner
DeVILBetreff: X1 = X Des Der Maus am nächsten liegenden Objekts? *gelößt* |
Mo, Nov 17, 2008 21:34 Antworten mit Zitat |
|
---|---|---|
Ja also vll ist die überschrift ein wenig undeutlich deshalb werde ich es nochmal in einem bild darstellen:
___ |__| <- ::: ::: X1 = X Des Der Maus am nächsten liegenden Objekts |
||
- Zuletzt bearbeitet von DeVIL am Mi, Nov 19, 2008 16:42, insgesamt einmal bearbeitet
da_poller |
Mo, Nov 17, 2008 21:41 Antworten mit Zitat |
|
---|---|---|
hmm null verstanden..
versuchs ma mit nem paint bild |
||
CN |
Mo, Nov 17, 2008 21:58 Antworten mit Zitat |
|
---|---|---|
Hmm, soweit ich das verstanden habe, willst du herausfinden welches Bild der Maus am nächsten liegt, richtig?
https://www.blitzforum.de/foru...php?t=3950 Schau mal danach, falls du sowas suchst. Edit: Falls ich deine Frage falsch verstanden haben sollte: einfach ignorieren.^^ |
||
[url=unrealstuff.bplaced.de]all rites reversed[/url] |
ozzi789 |
Di, Nov 18, 2008 10:38 Antworten mit Zitat |
|
---|---|---|
Pythagoras ist der Mann
X Maus , Y Gegner a^+b^=c^ in unserem Fall Distanz X achse von der Maus zum GegnerX^+ Distanz Y achse von der Maus zum GegnerY^= Absolute Distanz^ Wobei ^für im Quadrat steht jetzt berechnest du das für jeden gegner und dort wo die distanz am kleinsten is, ja das wär dan der nächste Mfg ozzi |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
- Zuletzt bearbeitet von ozzi789 am Mi, Nov 19, 2008 8:37, insgesamt einmal bearbeitet
DeVIL |
Di, Nov 18, 2008 21:51 Antworten mit Zitat |
|
---|---|---|
wer redet denn hier von gegnern?
und wie soll ich denn die Kleinste distanz als X1 definieren? PS: es heißt Pythagoras |
||
XeresModerator |
Di, Nov 18, 2008 23:25 Antworten mit Zitat |
|
---|---|---|
Alle Objekte durchgehen, Distanz ermitteln und diese in einer Variable speichern, wenn die Distanz kleiner ist, als der momentane Inhalt in der Variable.
Ansonsten die Fragestellung präzisieren... |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
The_Nici |
Mi, Nov 19, 2008 10:39 Antworten mit Zitat |
|
---|---|---|
Für das sortieren würde ich den QuickSort-Algo nehmen, der ist mathematisch bewiesen der schnellste Sortierungsalgorhitmus. Auf Wikipedia findest du sicher etwas dazu.
MfG |
||
DeVIL |
Mi, Nov 19, 2008 16:42 Antworten mit Zitat |
|
---|---|---|
Ok danke habs hinbekommen | ||
ozzi789 |
Mi, Nov 19, 2008 16:59 Antworten mit Zitat |
|
---|---|---|
Wie wär manchmal noch interessant | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
The_Nici |
Mi, Nov 19, 2008 17:26 Antworten mit Zitat |
|
---|---|---|
ozzi789 hat Folgendes geschrieben: Wie wär manchmal noch interessant
Wenn du meinen Post gelesen hättest, würdest du vielleicht deiner Antwort etwas näher kommen. |
||
peacemaker |
Mi, Nov 19, 2008 17:46 Antworten mit Zitat |
|
---|---|---|
Niemals den Quicksort oder sonstiges.
Er muss ja nur den nächsten nehmen? Da reichts einfach die kleinste Distanz zu suchen. Mit diesem Problem hatte ich bei den NPCs, bzw. deren Perceptions (Umwelterkennung) lange zu kämpfen. Man kommt leider nicht um alle-durchgehen-und-prüfen, aber man kann ja einschränken, und nur alle in einen bestimmten Radius, etc. mfG |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
The_Nici |
Mi, Nov 19, 2008 17:50 Antworten mit Zitat |
|
---|---|---|
Warum niemals den QuickSort? Dieser sortiert genau die Werte. Warum sollte man den nicht nehmen? Um die kleinste Distanz zu suchen muss man ja die Distanzen vergleichen, und genau das macht der QuickSort. | ||
BladeRunnerModerator |
Mi, Nov 19, 2008 17:56 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] local maxi = 0
local ergebnis for a = 1 to anzahl_elemente if array(a) < maxi then maxi = array(a) ergebnis = a endiuf next liefert den grössten Wert ohne dass irgendwas sortiert werden müsste. Die kleinste Distanz ist analog ermittelbar. Ein Sortieralgo ist hier also de facto überflüssig und kostet unnötig Ressourcen. |
||
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 |
Eingeproggt |
Mi, Nov 19, 2008 18:02 Antworten mit Zitat |
|
---|---|---|
Quicksort sortiert dir alle Werte auf- oder absteigend, wie man es grad braucht.
Aber wie peacemaker schon schrieb, braucht man nur einen Wert genau zu erfassen, in etwa so: Code: [AUSKLAPPEN] mx=MouseX()
my=MouseY() mindist#=10000000 For gegner.Tgegner=Each Tgegner dist#=Sqr((gegner\x-mx)*(gegner\x-mx)+(gegner\y-my)*(gegner\y-my)) If dist#<mindist Then mindist#=dist# ausgew_gegner.Tgegner=gegner Endif Next ;ausgew_gegner ist nun der Gegner am nähesten zur Mauskoordinate, noch Fragen? ^^ nici, du bist aufgefordert, einen Quicksort-Algo zu schreiben, der schneller ist Achja, falls sich jemand wundert warum ich kein ^2 verwende, sondern ausmultipliziere: Reiner Speed-optimierungswahn mfG, Christoph. EDIT: Na noch besser, Blade liefert die Array-Lösung und ich die Type-Lösung |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
The_Nici |
Do, Nov 20, 2008 21:28 Antworten mit Zitat |
|
---|---|---|
Gut, dann nicht, ich wollte nur mit Halbwissen prahlen. | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group