Algorytm atan2

0

Witajcie mam pewien problem, pisze skrypt do gry, ktora ma w sobie JAVE, ale nie ma wszystkiego :(
a dokladnie nie ma tego czego chce a mianowicie arcus tangent.

Probowalem napisac algorytm ale cos mi w nim nie idzie...
Wstawilem: Math.atan2(100.0 , 100.0)*180/Math.PI; z tego wynika, ze ma wyjsc kąt 45stopni, a u mnie jest 57,782 itp.

podaje javke Math:

package java.lang;

import java.render.*;
import java.render.osd.*;
import java.io.*;
import java.util.*;
import java.util.resource.*;
import java.sound.*;

public class Math
{
  	public static final float E = 2.718281828459045;
	public static final float PI = 3.141592653589793;

   	private static float ArcTan(float x)
   	{
     		float x2=x*x;
     		return (0.7162721433+0.2996857769*x2)*x/(0.7163164576+(0.5377299313+0.3951620469-1*x2)*x2);
   	}


	public native static float random();
	public native static float sqrt(float  a);

	public static float atan2(float y, float x)
  	{
    		float ax=(float)abs(x);
    		float ay=(float)abs(y);

    		if ((ax<0.0001-7) && (ay<0.0001-7)) 
			return 0;
	
    		if (ax>ay)
    		{
      			if (x<0)
      			{
        			if (y>=0) return ArcTan(y/x)+PI;
        			else return ArcTan(y/x)-PI;
      			}
      			else return ArcTan(y/x);
    		}
    		else
    		{
      			if (y<0) return ArcTan(-x/y)-PI/2;
      			else return ArcTan(-x/y)+PI/2;
    		}
  	}

	public static float atan2f(float y, float x )
	{
		return y/x;
	}

	public static float abs(float f) 
	{
		return ((f<0.0) ? (-f) : (f));
	}

	public static int abs(int f) 
	{
		return ((f<0.0) ? (-f) : (f));
	}



	public native static void randomize();
	public native static void setrandseed( int seed );

	public static float toDegrees(float angrad) 
	{
      		return angrad * (360.0 / (2 * PI));
   	}

	public static float toRadians(float angdeg) 
	{
      		return angdeg * ((2 * PI) / 360.0);
   	}
}

na pewno jest w tym błąd jeżeli nie dziala ;) Czy moglby mnie ktoś nakierunkować bądź jakos rozpisać jak mam obliczyć :) z Góry serdeczne dzięki

0

Wow, po co ty to chcesz ręcznie obliczać? I właściwie jak, to jest jakieś szybkozbieżne rozwinięcie w szereg?

W standardowej bibliotece masz klasę Math, w której masz odpowiednie metody.

0

przepraszam drobna pomylka:

przy atan2: wychodzi 0.336
przy atan2f: 57. ilestam

0
dodekam napisał(a)

Wow, po co ty to chcesz ręcznie obliczać? I właściwie jak, to jest jakieś szybkozbieżne rozwinięcie w szereg?

W standardowej bibliotece masz klasę Math, w której masz odpowiednie metody.

Witajcie mam pewien problem, pisze skrypt do gry, ktora ma w sobie JAVE, ale nie ma wszystkiego :(
a dokladnie nie ma tego czego chce a mianowicie arcus tangent.

jak rowniez nie ma sin, cos, tan itp

standardowo jest tylko: random, randomize, sqrt :(

Prosze dajcie jakos rade :)

Potrzebuje to do obliczenia poslizgu samochodu :) tzn. Drift :)

0

nic nadal mi to nie mowi...

powtarzam, ze sam musze wzory napisac...

0

jesteś ślepy czy umiesz czytać tylko cyrylicę? przecież te funkcje tam są, a mówienie, że ich nie ma, wydaje się być co najmniej śmieszne

0

funkcje w klasie Math są na pewno napisane dobrze, więc jeśli coś wychodzi ci źle to błąd jest po twojej stronie a nie tej bilbioteki :P

0

Dodekam: Ty jestes slepy czytaj posty. ze zrozumieniem.

Witajcie mam pewien problem, pisze skrypt do gry, ktora ma w sobie JAVE, ale nie ma wszystkiego :(
a dokladnie nie ma tego czego chce a mianowicie arcus tangent.

MATH.JAVA w grze to zaledwie

package java.lang;

import java.render.*;
import java.render.osd.*;
import java.io.*;
import java.util.*;
import java.util.resource.*;
import java.sound.*;

public class Math
{
	public native static float random();
	public native static float sqrt(float  a);
	public native static void randomize();
	public native static void setrandseed( int seed );
}

Wiec sam musze wzory napisac... ale mi nie wychodzi, bledy itp. dlatego potrzebuje dobrego zródła atan2 i arctan..

Gdybym to mial w javcie math, to bym nie zadawal glupich pytan na forum...
WIem, jak uzytwac owych danych ale nie potrafie napisac wzoru, bo nie dziala tak jak powinien.

0

PS.
Jakby co to nie moge sie polaczyc z calą javą w systemie tylko z wbudowaną w gre.

0
arctan(x)=x - \frac {x<sup>3} 3 + \frac {x</sup>5} 5 - \frac {x^7} 7 + .... \qquad x \in [-1;1] może się przyda
0
bogdans napisał(a)
arctan(x)=x - \frac {x<sup>3} 3 + \frac {x</sup>5} 5 - \frac {x^7} 7 + .... \qquad x \in [-1;1] może się przyda

Dzięki bogdans, dziala wkoncu :) to mi pomoglo :)

0

to wypieprz tą klasę Math wbudowaną w grę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1