X1 = X Des Der Maus am nächsten liegenden Objekts? *gelößt*
Übersicht

![]() |
DeVILBetreff: X1 = X Des Der Maus am nächsten liegenden Objekts? *gelößt* |
![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm null verstanden..
versuchs ma mit nem paint bild |
||
CN |
![]() 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 |
![]() 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 |
![]() 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 |
![]() 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 |
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok danke habs hinbekommen | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wär manchmal noch interessant ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
The_Nici |
![]() 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 |
![]() 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 |
![]() 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 |
![]() 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 |
![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, dann nicht, ich wollte nur mit Halbwissen prahlen. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group