Skocz do zawartości

Współrzędne trójkąta


Exigo

Rekomendowane odpowiedzi

Zamysł jest taki, żeby współrzędne punktów trójkąta były uporządkowane wedle wskazówek zegara. Wydaje mi się że najprościej będzie sprawdzić czy ciąg jest "nie-uporządkowany", i jeśli warunek zostanie spełniony, zamienić pozycjami jakiekolwiek wierzchołki.

Problemem jest opracowanie sprawdzania kolejności. Ma ktoś jakiś pomysł? Bo ja nie. ^^

(współrzędne w dwóch wymiarach)

 

@Edit:

Dobra, rozkminiłem. (parzyste komórki to X, nieparzyste Y, na "i" nie zwracać uwagi (pierwszy wymiar tablicy))

GML
_da = point_direction(trip[i, 0], trip[i, 1], trip[i, 2], trip[i, 3]);

_db = point_direction(trip[i, 2], trip[i, 3], trip[i, 4], trip[i, 5]);

_a = ((((_da - _db) mod 360) + 360 + 180) mod 360) - 180;

if (_a < 0) {

show_message('switch!');

_x = trip[i, 0];

_y = trip[i, 1];

trip[i, 0] = trip[i, 2];

trip[i, 1] = trip[i, 3];

trip[i, 2] = _x;

trip[i, 3] = _y;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jest taki fajny algorytm, nazywa się zamiatanie polarne. Bierzesz współrzędne punktów, wyliczasz środek, później wyliczasz kąt nachylenia punktów względem środka i na podstawie tego współczynnika sortujesz punkty.

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