Skocz do zawartości

Trygonometria - błąd w rysowaniu


I am Lord

Rekomendowane odpowiedzi

Podczas tworzenia edytora do gry której jeszcze wam nie zapowiadałem :P natrafiłem na problem. Otóż chcę narysować prostokąt złożony z 2 trójkątów figura jest elastyczna czyli się skaluje osobno w osi x i osobno w osi y, oraz może się przekręcać, więc zwykły draw_rectangle tu nic nie zdziała.

 

No i napisałem kod:

GML
var pit;

pit=sqrt(sqr(sprite_width)+sqr(sprite_height));

 

draw_triangle_color(

x+lengthdir_x(0,image_angle),y+lengthdir_y(0,image_angle),

x+lengthdir_x(sprite_width,image_angle),y+lengthdir_y(sprite_width,image_angle),

x+lengthdir_x(sprite_height,image_angle-90),y+lengthdir_y(sprite_height,image_angle-90),$FFFF00,$FFFF00,$FFFF00,1);

 

draw_triangle_color(

x+lengthdir_x(pit,image_angle-radtodeg(cos(sprite_height/pit))),y+lengthdir_y(pit,image_angle-radtodeg(sin(sprite_width/pit))),/*tu jest błąd chyba*/

x+lengthdir_x(sprite_width,image_angle),y+lengthdir_y(sprite_width,image_angle),

x+lengthdir_x(sprite_height,image_angle-90),y+lengthdir_y(sprite_height,image_angle-90),$FFFF00,$FFFF00,$FFFF00,1);

 

pierwszy trójkąt działa poprawnie jednakże pierwszy punkt, drugiego trójkąta jest zwalony.

 

Pomoże mi ktoś wyłapać mój błąd?

 

EDIT:

wychodzi z tego taka kupa:

trjkty.png

Odnośnik do komentarza
Udostępnij na innych stronach

Tą linijkę z błędem zamień na:

GML
x+lengthdir_x(pit,image_angle-radtodeg(arctan2(sprite_height,sprite_width))),y+lengthdir_y(pit,image_angle-radtodeg(arctan2(sprite_height,sprite_width))),/*tu jest błąd chyba*/

 

cos zwraca ci cosinus danego kąta.

Ty potrzebujesz poznać kąt mając długość w pionie i w poziomie (mając tangens). Do tego jest arctan2.

Czyli robiłeś odwrotnie.

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ę...