Skocz do zawartości

point_direction w c++?


Cekol

Rekomendowane odpowiedzi

Nom, ok...

Wyskrobałem coś takiego:

export real point_direction(real xstart,real ystart,real xend,real yend)
{
   real xdist = xend - xstart;
   real ydist = yend - ystart;
   real ang = atan2(xdist,ydist)/ M_PI;
   return  180-ang*180;//180 - ang;
}

Lecz dostaje wynik 0 przy pozycji (0,-1) a nie jak jest w gm (1,0) ;<

dalej proszę o pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra, działa.

Mam takie coś

export real point_direction(real xstart,real ystart,real xend,real yend)
{
   real xdist = xend - xstart;
   real ydist = yend - ystart;
   real ang = atan2(xdist,ydist)/ M_PI;
   ang = 270+ang*180; 
   if (ang>360) ang=ang-360;
   return  ang;
}

I działa idealnie, tak jak w gm.

Lecz da się to zrobić, bez tego głupiego if?

Odnośnik do komentarza
Udostępnij na innych stronach

#include <math.h>

 

double degtorad( double deg )

{

return( deg * 3.14/180 );

}

 

double point_direction( double x1, double y1, double x2, double y2 )

{

return( atan2( y2-y1, x2-x1 ) / 3.14 * 180 );

}

 

double lengthdir_x( double len, double dir )

{

return cos(degtorad(dir))*len;

}

 

double lengthdir_y( double len, double dir )

{

return sin(degtorad(dir))*len;

}

Masz jeszcze lengthdiry

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...