Permalänk
Medlem

Koordinater i en java applet

Jag har för en skoluppgift gjort en applet i java, i vilken en massa partiklar flyger runt helt slumpvist.

Man kan säga att den är väldigt lik denna:

http://galileo.phys.virginia.edu/classes/109N/more_stuff/Appl...

(den till höger, fast utan "stora" bollen)

I min applet så fastnar de små röda bollarna mot väggarna.

Problemet är nu att dessa bollar även ska klibba fast på andra bollar som redan fastnat någonstans.

Så mitt problem är alltså den att först o främst måste jag mata in en "inaktiv" bolls koordinater till någon sorts lista, därefter måste bollarna jämföra sin egen position mot den här listan med koordinater.

Läraren snackade om någon slags "kartfunktion" som jag fortfarande tycker låter väldigt kryptiskt. Finns det kanske nån "map"-metod/klass?

Om någon har nån aning om någon användbar metod, verktyg eller nån smart if/for-sats som kan hjälpa är jag väldigt tacksam! Sitter helt fast

Permalänk
Medlem

Jag förstår inte frågan, du har ju redan beskrivit hur du kan göra? Ha koordinater i en lista och jämför för att hitta dom som träffar varann.

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem

jo alltså, problemet är att jag inte är så jättebra på själva syntaxen. Upplever att vad jag än försöker översätta från tanke till kod blir bara fel.

För en halvtimma sedan fick jag insikten att det kunde vara väldigt lätt att göra en matris på ca 500x500, där varje koordinat är en pixel. Därefter borde det inte vara så svårt att mata in partiklarna i matrisen.

Men jag tycker det är riktigt svårt att översätta dessa tankar till korrekt kod.

edit: t.ex. hur om man ska använda "equals" eller "==" när man ska jämföra saker o ting, och var jämför man nånstans? osv.

edit2: inser att det kan vara rätt svårt att hälpa mig utan att se hela koden. Men som sagt jag är mest ute efter förslag på hur man går tillväga för att t.ex. jämföra något med något annat i en array... osv. Eller nån länk till nån bra tutorial för arrays.

Permalänk
Medlem

Är nog lämpligare att ha en lista på xy koordinater på alla bollar snarare än en matris med bollarna.
Jag vet inte riktigt hur jag ska hjälpa dig, du verkar tyvärr ha lite för bristande kunskap, men såhär kan du iaf loopa igenom en lista och jämföra alla element med alla andra:

for(int i = 0; i < list.size(); i++) for(int j = 0; j < list.size(); j++) if(i != j) if(Point2D.distance(list.get(i).x,list.get(i).y, list.get(j).x,list.get(j).y) < list.get(i).size + list.get(j).size) ; // Kollission

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem

tack så mycket

jobbar nu med att implementera koden du gav mig.

Det visar sig att det fungerar Men jag har ca 200 bollar och den kollar igenom listan åt var och en.. flera hundra gånger per sekund så det är inte så där jätte effektivt Men jag ska jobba på det. Tack så mycket för hjälpen! klassen Point2D gjorde susen