Ballistisk kurve i Java Swing

Tags:    java

Hej allesammen!

Er lige begyndt på at lære Java, egentlig fordi jeg er så træt af C++ GUI cross-platform librarys...

Jeg skal til at begynde på det hele fra en ende af, men blev lige pludselig fanget af ballistiske kurver, og var simpelthen nød til at prøve at tegne en.
Dog, "hakker" bolden helt utroligt, og kan ikke se hvad fejlen er i min kode:

Main
Fold kodeboks ind/udJava kode 


Ballistics:
Fold kodeboks ind/udJava kode 


Håber i kan hjælpe en nybegynder inden for Java.

Mvh
Jakob



Har ikke arbejdet med Java i lang tid, og det er sent så kan ikke rigtigt lige svare på dit spørgsmål. Kan dog hurtigt give dig et lille performance råd. Det er ikke nødvendigt at beregne følgende 100000 gange:

double speedX = speed * Math.cos(angle)

Siden den ikke ændrer sig (i din ballistik simulation).



Ja, mange tak! Prøvede lige at smide dem ud af for-loopet, men det hjalp desværre ikke.
Fold kodeboks ind/udJava kode 




Tror Hotspot automatisk optimerer på det område :)





Hej Jakob,

Det korte svar er, at du benytter for mange faktorer til at styre tidsstyrringen i banen.

Banen er ganske pæn, men da du kun forøger t med 0.001 sekund, i en 2 sekunders bane. Og har et topunkt ved ca. 20 samt et delay ved hvert punkt, er der lagt op til problemer...

t / 100, laver en heltals division og giver derfor ikke double værdier.

Du skal have en langt højere skala, med den hastighed, end at een pixel svarer til en meter - når et sekund simuleres over 10.

Med venlig hilsen
Ieet










Hej Jakob,

Det korte svar er, at du benytter for mange faktorer til at styre tidsstyrringen i banen.

Banen er ganske pæn, men da du kun forøger t med 0.001 sekund, i en 2 sekunders bane. Og har et topunkt ved ca. 20 samt et delay ved hvert punkt, er der lagt op til problemer...

t / 100, laver en heltals division og giver derfor ikke double værdier.

Du skal have en langt højere skala, med den hastighed, end at een pixel svarer til en meter - når et sekund simuleres over 10.

Med venlig hilsen
Ieet

Ja, det med højere tal havde jeg fundet ud af, men kræver det så bare at jeg sætter farten op? (Altså sætter speed højere?)



Har fundet ud af det... Havde overset jeg gangede x og y værdierne med 5...



t