Gå til innhold

[Løst]utskytning av ball i vinkel


Anbefalte innlegg

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 av Z_AGo
Lenke til kommentar
Videoannonse
Annonse

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.):

mimetex.cgi?x_0 er startposisjonen

mimetex.cgi?v_{x0} er starthastigheten

mimetex.cgi?t er tiden som har gått

mimetex.cgi?a_x er akselerasjonen

 

Subskript x (eller y) vil si mengden i den retningen.

Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...