Z_AGo Skrevet 12. desember 2009 Del Skrevet 12. desember 2009 (endret) har et problem med å finne riktig måte/formel ved å beregne utskytningsvinkelen på en ball. Jeg har muligheten til å endre utskytningsvinkelen, men formelen klarer jeg ikke finne fram til. gaah frustrerende! noen som kan hjelpe med det? public void move() { // double v2x = vx + ax * t; double angle = 1; double v2x = vx * Math.cos(angle) * t; System.out.println("v2x: " + v2x); double v2y = vy + ay * t; // double v2x = vx + (ax * (Math.cos(angle))); double deltax = ((vx + v2x) * t) / 2; double deltay = ((vy + v2y) * t) / 2; if( XPosition <= 0){ isMoving = false; }else{ XPosition += deltax; YPosition += deltay; } vx = v2x; vy = v2y; } edit: kom på at java regner i radianer, så må også ha en omgjøringsmetode fra radianer til grader. public static double ToDegrees(double radians) { double degrees = (180 / Math.PI) * radians; return (degrees); } Endret 12. desember 2009 av Z_AGo Lenke til kommentar
DevilsDecoy Skrevet 13. desember 2009 Del Skrevet 13. desember 2009 Vil du finne vinkelen for å treffe et punkt, eller vil du finne banen gitt en vinkel? Generelt er formlene for posisjon (uten luftmotstand, konstant akselerasjon osv.): er startposisjonen er starthastigheten er tiden som har gått er akselerasjonen Subskript x (eller y) vil si mengden i den retningen. Lenke til kommentar
Z_AGo Skrevet 13. desember 2009 Forfatter Del Skrevet 13. desember 2009 eg vil ha banen gitt av en vinkel Lenke til kommentar
DevilsDecoy Skrevet 13. desember 2009 Del Skrevet 13. desember 2009 Da bruker du formelen jeg postet over. er vanligvis -9.8, og er 0. Lenke til kommentar
Z_AGo Skrevet 19. desember 2009 Forfatter Del Skrevet 19. desember 2009 Løste det på en enkel måte! legger ut formelen her slik at alle kan se =) public void move() { double verdi = angle * 2 * Math.PI / 360; double degx = Math.cos(verdi); double degy = Math.sin(verdi); double v2x = vx + ax * t; double v2y = vy + ay * t; double deltax = ((vx + v2x) * degx) / 2; double deltay = ((vy + v2y) * degy) / 2; if( XPosition <= 0){ isMoving = false; }else{ XPosition += deltax; YPosition += deltay; } vx = v2x; vy = v2y; } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå